用多个值反应本机 setState
React native setState with multiple values
我在这样的构造函数中定义我的状态。
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 },
});
注释行覆盖了所有元素,第二个returns顺序未定义。
仅保存具有多个值的状态中的一项的正确语法是什么。
如评论中所述,您可以使用 update
修改对象值:
var update = require('react-addons-update');
this.setState(function(previousState, currentProps) {
var newState = update(previousState,{
order: {
brand: {
$set: 'some new value'
}
}
});
return newState;
});
请注意为什么存在该错误,可能在您使用它的地方实际上未定义顺序。
您喜欢尝试使用 {...this.state.order}
我在这样的构造函数中定义我的状态。
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 },
});
注释行覆盖了所有元素,第二个returns顺序未定义。
仅保存具有多个值的状态中的一项的正确语法是什么。
如评论中所述,您可以使用 update
修改对象值:
var update = require('react-addons-update');
this.setState(function(previousState, currentProps) {
var newState = update(previousState,{
order: {
brand: {
$set: 'some new value'
}
}
});
return newState;
});
请注意为什么存在该错误,可能在您使用它的地方实际上未定义顺序。
您喜欢尝试使用 {...this.state.order}