#flutter #dart #provider
#flutter #dart #поставщик
Вопрос:
Это будет звучать очень странно, но это сделает код для этого приложения очень компактным.
Есть ли способ вызвать .operator условно. Вот пример
допустим, у меня есть класс с тремя значениями, которые я могу выполнить . on.
class A {
int intOne;
int intTwo;
int intThree;
}
чтобы получить интонацию в классе A, вы можете сделать A.правильно интонируйте….
но что, если вы хотели строку справа от . чтобы условно быть там.
A.»conditionalvariable»
итак, если пользователь нажимает кнопку, скажем, button A, то условной переменной будет A.Интонировать. и если пользователь нажмет кнопку b, тогда значение «conditionalvariable» будет равно INTWO, и, следовательно, вы будете получать данные.
пожалуйста, предположите, что я не глуп, и мне нужна именно эта вещь для конкретного варианта использования. Если вы опубликуете ответ, который не является этим точным решением, он не будет принят.
пример:
var a;
switch (name) {
case "intOne":
a = A.intOne;
break;
...
}
// это неприемлемый ответ
Я понимаю, что это был бы «ответ» на этот вопрос, но на самом деле мне не нужно точное указание, потому что я использую streams.
вот тот вариант использования, о котором я говорил. Я мог бы целый день объяснять, зачем мне это нужно таким образом, но в любом случае это либо существует, либо нет, поэтому простое «нет, этого не существует» является приемлемым ответом.
return StreamProvider.value(
value: classDataNotif.homework,
)
в зависимости от того, что нажато перед этим виджетом, «домашнее задание» нужно будет изменить на «заметки» или «тесты».
Вы не можете выполнить переключение выше этого, потому что это вызовет поток раньше и приведет к сбою виджета. переключение внутри виджета и копирование кода приведет к потере цели. чтобы сделать код максимально компактным и простым в написании, мне нужна строка справа от . оператор для изменения.
заранее спасибо 🙂
Комментарии:
1. Я понимаю, что вы пытаетесь сделать. Теперь я не уверен, возможно ли это или нет, но это напоминает мне много отражений Java, где у вас есть операторы для доступа к полям, поэтому, возможно, взгляните на это и посмотрите, есть ли «Отражения» в dart! Надеюсь, это поможет
2. Это было бы возможно только с отражением, которое возможно только с помощью dart. Но, похоже, вы используете flutter, поэтому это невозможно сделать.