【问题标题】:React native setState with multiple values用多个值反应原生 setState
【发布时间】:2017-02-20 16:55:46
【问题描述】:

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

  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 },
  });

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

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

【问题讨论】:

  • 您是否尝试过分配状态或使用update

标签: javascript reactjs react-native ecmascript-6 setstate


【解决方案1】:

如 cmets 中所述,您可以使用 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

【讨论】:

  • 订单上出现意外令牌{
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-08
    • 2019-06-10
    • 2017-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    相关资源
    最近更新 更多