Невозможно динамически добавить новую пару ключ-значение в массив STATE JSON в приложении React - PullRequest
0 голосов
/ 15 февраля 2019

Я пытаюсь добавить новую пару ключ-значение в уже загруженный массив JSON.Я добавляю новую пару ключ-значение для настройки ячеек столбца заголовка в таблице начальной реакции, но получаю следующие ошибки.Может ли кто-нибудь помочь, пожалуйста?

enter image description here

«Столбцы» в приведенном ниже состоянии, где я хотел добавить новую пару ключ-значение

state = {
        data: MYResult.Products || [],
        actualData: MYResult.Products || [],
        columns: MYResult.ParametricList_Attributes || [],
        isCompareClicked: false,
        isDisabled: true,
        selected: []
    };

Вот как я добавляю пару ключ-значение -

componentDidMount(){


        checkbox = (column, colIndex) => {
            return (
                <h5>{ column.text }<checkbox/></h5>
            );
        }
        console.log(this.state.columns) ;
        newColumn = this.state.columns.map((column) => {

            return {...column, headerFormatter: checkbox};
        });
        this.setState({columns: newColumn });
    }

Полный код здесь - https://codesandbox.io/s/o1r988qkz Пожалуйста, раскомментируйте componentDidMount (), чтобы увидеть проблему

Ответы [ 2 ]

0 голосов
/ 15 февраля 2019

Во-первых, есть опечатка в dcolumn и column.А что касается ошибки not defined, вам нужно определить ее, используя const.Используйте как:

const checkbox = (column, colIndex) => {
      return (
        <h5>{column.text}<checkbox /></h5>
      );
    }
0 голосов
/ 15 февраля 2019

Переменные JavaScript должны быть объявлены, когда они используются.Синтаксис открытого класса не может использоваться везде.Ошибка, которую вы получаете, самоочевидна - «флажок не определен».Вот как это использовать: https://tylermcginnis.com/javascript-private-and-public-class-fields/

Я просто объявил необъявленные переменные в вашем примере, и код сработал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...