РЕДАКТИРОВАТЬ: это дубликат, смотрите здесь
Я не могу найти никаких примеров использования имени динамического ключа при установке состояния. Вот что я хочу сделать:
inputChangeHandler : function (event) {
this.setState( { event.target.id : event.target.value } );
},
где event.target.id используется в качестве ключа состояния для обновления. Разве это не возможно в React?
Ответы:
Благодаря подсказке @ Кори, я использовал это:
Если вы используете ES6 или транспортер Babel для преобразования вашего кода JSX, вы можете сделать это и с помощью вычисляемых имен свойств :
источник
computed property names
trad
, это то, что я искал, чтобы избежать дублирования кода для<Radio />
реализации.this.setState({ [event.target.id]: event.target.value });
тогда как бы вы получили доступ к этому состоянию, используяthis.state......
?Когда вам нужно обработать несколько контролируемых элементов ввода, вы можете добавить атрибут name к каждому элементу и позволить функции-обработчику выбирать, что делать, основываясь на значении event.target.name.
Например:
источник
this.state([event.target.name])
?Как мне это удалось ...
источник
this.forceUpdate();
чего не должно было случиться с последним React. Давайте посмотрим, в чем проблема позже!Я просто хотел добавить, что вы также можете использовать деструктуризацию, чтобы реорганизовать код и сделать его более аккуратным.
источник
В цикле с
.map
работой, как это:Обратите внимание на параметр
[]
intype
. Надеюсь это поможет :)источник
У меня была похожая проблема.
Я хотел установить состояние хранения ключа 2-го уровня в переменной.
например
this.setState({permissions[perm.code]: e.target.checked})
Однако это неверный синтаксис.
Я использовал следующий код для достижения этой цели:
источник
С ES6 + вы можете просто сделать [
${variable}
]источник
Я искал красивое и простое решение, и я нашел это:
Надеюсь это поможет
источник
Пожалуйста, обратите внимание на символ цитаты.
источник
Ваше состояние со словарем обновляет один ключ, не теряя другого значения
Решение ниже
здесь обновите значение для ключа "страница" значением 5
источник
Можно использовать синтаксис распространения, что-то вроде этого:
источник