@reactreact

Как добавить данные в объект (react.js)?

Есть объект
getInitialState: function() {
  return {
    dob: {
      'month' : 'January',
      'day' : '01',
      'year' : '2015'

  };
},


Как изменить в нём данные, например, для year?
Так не получается this.setState({dob.year: '1980'})
  • Вопрос задан
  • 1592 просмотра
Решения вопроса 2
Laiff
@Laiff
Front-end developer
Например
this.setState({
    dob: {
         ...this.state.dob,
         year: '1980'
    }
})

Хотя и это можно оптимизировать например используя ramdajs.com/0.18.0/docs/#lens
Ответ написан
Комментировать
finnish
@finnish
В React есть расширения (addons), среди которых можно найти метод React.addons.update. Его использование может показаться слегка необычным:
var newState = React.addons.update(this.state, { 
    dob: { 
        year: { 
            $set: '1980' 
        }
    }
});
this.setState(newState);

Не знаю насколько сейчас это актуально, но тем не менее, это решение предлагает сам Facebook.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
this.setState({ dob: { year: '1980' }});
Ответ написан
@OneFive
React.js <3
Можно ещё так:
this.state.dob.year = 1980;
this.setState(this.state);
// или так 
this.setState(function(state) {
    state.dob.year = 1980;
    return state;
});
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы