Reactjs 无法将新值推送到prevState数组
每次装入页面时,我都要使用prevState.CheckoutArray+returnListArray设置CheckoutArray。 但国家并没有被设定。 下面是我的代码Reactjs 无法将新值推送到prevState数组,reactjs,react-native,Reactjs,React Native,每次装入页面时,我都要使用prevState.CheckoutArray+returnListArray设置CheckoutArray。 但国家并没有被设定。 下面是我的代码 this.state = { CheckoutArray: [], }; } componentDidMount() { let returnListArray = []; returnListArray.push(this.props.navigation.state
this.state = {
CheckoutArray: [],
};
}
componentDidMount() {
let returnListArray = [];
returnListArray.push(this.props.navigation.state.params.itemDetails);
console.log('returnListArray', returnListArray);
this.setState(
prevState => (
{
CheckoutArray: [
...prevState.CheckoutArray,
returnListArray,
],
}
),
() => console.log('CheckoutArray', this.state.CheckoutArray)
);
}
您在错误的位置回调setState 该命令应适用于:
this.setState(
(prevState)=>({
CheckoutArray:[…prevState.CheckoutArray,returnListArray],
}),
()=>console.log('CheckoutArray',this.state.CheckoutArray),
);
此外,comment中的@Ramesh是正确的,您可能希望将两个数组合并:
this.setState(
(prevState)=>({
CheckoutArray:prevState.CheckoutArray.concat(returnListArray),
}),
()=>console.log('CheckoutArray',this.state.CheckoutArray),
);
您在错误的位置回调setState
该命令应适用于:
this.setState(
(prevState)=>({
CheckoutArray:[…prevState.CheckoutArray,returnListArray],
}),
()=>console.log('CheckoutArray',this.state.CheckoutArray),
);
此外,comment中的@Ramesh是正确的,您可能希望将两个数组合并:
this.setState(
(prevState)=>({
CheckoutArray:prevState.CheckoutArray.concat(returnListArray),
}),
()=>console.log('CheckoutArray',this.state.CheckoutArray),
);
您的语法有问题。这个
this.setState(
prevState => (
{
CheckoutArray: [
...prevState.CheckoutArray,
returnListArray,
],
},
() => console.log('CheckoutArray', this.state.CheckoutArray)
),
);
应该是
this.setState(
prevState => (
{
CheckoutArray: [
...prevState.CheckoutArray,
returnListArray,
],
}
), () => console.log('CheckoutArray', this.state.CheckoutArray)
);
更新状态时调用的回调函数应作为参数传递给
setState
,这不是您要做的。您的语法有问题。这个
this.setState(
prevState => (
{
CheckoutArray: [
...prevState.CheckoutArray,
returnListArray,
],
},
() => console.log('CheckoutArray', this.state.CheckoutArray)
),
);
应该是
this.setState(
prevState => (
{
CheckoutArray: [
...prevState.CheckoutArray,
returnListArray,
],
}
), () => console.log('CheckoutArray', this.state.CheckoutArray)
);
更新状态时调用的回调函数应作为参数传递给
setState
,这不是您正在做的。我认为您也应该在returnListArray上使用扩展运算符,以便签出数组将是一个数组而不是数组数组。我认为您也应该在returnListArray上使用扩展运算符,以便签出数组将是一个数组而不是数组数组。谢谢您的帮助。我想用prevState.CheckoutArray+returnList数组中的新值追加(推送)我的签出数组。你能帮帮我吗?因为我每次在签出阵列中只能得到一个项目。谢谢你的帮助。我想用prevState.CheckoutArray+returnList数组中的新值追加(推送)我的签出数组。你能帮帮我吗?因为我每次在签出数组中只能得到一个项目。