Оператор «[]» не определен для класса «Объект». дротик - PullRequest
1 голос
/ 16 февраля 2020

У меня есть виджет, который в какой-то момент перейти на другую страницу. как: -

          Navigator.of(context).pushNamed(
              NextPage.routeName,
              arguments: {
                "tag": this.tag,
                "data": this.data,
              },
            );

теперь ясно. Хотя параметр argument принимает тип Object, но также принимает Map, так как это предложение не дает мне ошибки.

И в NextPage я получаю доступ к значению, как: -

tag: ModalRoute.of(context).settings.arguments["tag"].toString(),

Теперь vscode выдаёт мне ошибку: -

The operator '[]' isn't defined for the class 'Object'.
Try defining the operator '[]'.dart(undefined_operator)

Я не знаю, почему vscode дает мне ошибка. Итак, либо Object должен иметь [], либо Map должен быть типом Object.

Или в Date есть что-то непонятное.

Примечание: data является объектом.

Как удалить эту ошибку?

1 Ответ

1 голос
/ 16 февраля 2020

ModalRoute.settings.arguments - это свойство типа Object. Вы не можете вызвать индексатор [] на Object. Все в Dart наследуется от Object, поэтому вы можете передавать свои аргументы ModalRoute независимо от того, что это такое. Однако, чтобы использовать его, вам нужно сначала привести его к типу, с которым вы ожидаете работать.

tag: (ModalRoute.of(context).settings.arguments as Map)["tag"].toString(),
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...