4

我正在像这样在构造函数中定义我的状态。

  constructor(props) {
    super(props);
    this.state = {
    order: props.data ? { ...props.data } : { title: '', birthdate: '' , gender: '', startdate: '', starttime: '', brand: null},

然后在另一个函数中,我试图只为 order.brand 设置状态

  this.setState({
    //order: { brand: items[0].title },
    order: { ...order, brand: items[0].title },
  });

注释行覆盖所有元素,第二行返回未定义的顺序。

仅保存具有多个值的状态项的正确语法是什么。

4

2 回答 2

1

如评论中所述,您可以使用它update来修改对象值:

var update = require('react-addons-update');

this.setState(function(previousState, currentProps) {
    var newState = update(previousState,{
        order: {
            brand: {
                $set: 'some new value'
            }
        }
    });

    return newState;
});

https://facebook.github.io/react/docs/update.html

于 2016-10-12T02:07:47.377 回答
0

只是要注意为什么存在该错误,订单实际上可能在您使用它的地方未定义。

你喜欢尝试使用{...this.state.order}

于 2016-10-12T02:25:23.403 回答