Flutter Web - Как сохранить абсолютное значение при итерации списка объектов? - PullRequest
0 голосов
/ 07 февраля 2020

У меня есть список словарей, в которых у меня есть идентификатор. Я перебираю список и создаю поднятую кнопку. Кнопка повышения «onPressed» предназначена для отправки «id», который был в «product» во время его создания, однако она всегда отправляет «id» из последнего объекта «product» в списке. Кажется, что он сохраняет относительную ссылку на объект продукта, а не абсолютное значение «id». (** предназначены только для выделения объекта и отсутствуют в коде).

if(productList!=null)
  for(product in productList)
     TableRow(
       children: <Widget>[
         Container(
           decoration: new BoxDecoration(
             color: Colors.white,
           ),
           child: Center(
             child: Row(
               children: <Widget>[
                 SizedBox(
                   width: 50,
                   height: 20,
                   child:RaisedButton(
                     shape: RoundedRectangleBorder(
                       borderRadius: new BorderRadius.circular(18.0),
                     ),
                     onPressed: () => editProduct('**${product['id']}**'),
                     color: Colors.blue,
                     padding: EdgeInsets.fromLTRB(1, 1, 1, 1),
                     child: Text('Edit',
                       style: TextStyle(
                         color: Colors.white,
                         fontSize: 10,
                       ),
                     ),
                   ),
                 ),
               ],
             ),
          ],
        ),
      ),
    ),
  ],
),

Я пробовал все возможные варианты преобразования в строку. toString (), перенос в одинарные кавычки, двойные кавычки. Есть предложения?

1 Ответ

0 голосов
/ 07 февраля 2020

Попробуйте с for(final product in productList){...}

...