Javascript 如何将数组分配给状态变量?
我有一个函数如下所示:Javascript 如何将数组分配给状态变量?,javascript,reactjs,typescript,jsx,Javascript,Reactjs,Typescript,Jsx,我有一个函数如下所示: select(e) { let { selectedItems } = this.state; let arr: number[] = []; for (var i = 0; i < 2; i++) arr = [...arr, i]; this.setState( { selectedItems: arr, } ); console.log(selectedItems);
select(e) {
let { selectedItems } = this.state;
let arr: number[] = [];
for (var i = 0; i < 2; i++) arr = [...arr, i];
this.setState(
{
selectedItems: arr,
}
);
console.log(selectedItems);
}
选择(e){
让{selectedItems}=this.state;
设arr:number[]=[];
对于(var i=0;i<2;i++)arr=[…arr,i];
这是我的国家(
{
selectedItems:arr,
}
);
console.log(selectedItems);
}
但是当我尝试
console.log(selectedItems)
时,我得到的只是一个空数组。当我console.log(arr)
时,我得到了我想要的正确输出——一个长度为2的数组。这里可能发生的情况以及如何将selectedItems
分配给arr
的值?setState
采用回调函数。请尝试以下操作:
select(e) {
let { selectedItems } = this.state;
let arr: number[] = [];
for (var i = 0; i < 2; i++) arr = [...arr, i];
this.setState({
selectedItems: arr,
}, function(){
console.log(this.state);
}.bind(this));
}
选择(e){
让{selectedItems}=this.state;
设arr:number[]=[];
对于(var i=0;i<2;i++)arr=[…arr,i];
这是我的国家({
selectedItems:arr,
},函数(){
console.log(this.state);
}.约束(这个);
}
设置状态
采用回调函数。请尝试以下操作:
select(e) {
let { selectedItems } = this.state;
let arr: number[] = [];
for (var i = 0; i < 2; i++) arr = [...arr, i];
this.setState({
selectedItems: arr,
}, function(){
console.log(this.state);
}.bind(this));
}
选择(e){
让{selectedItems}=this.state;
设arr:number[]=[];
对于(var i=0;i<2;i++)arr=[…arr,i];
这是我的国家({
selectedItems:arr,
},函数(){
console.log(this.state);
}.约束(这个);
}
A类{
选择(e){
让{selectedItems}=this.state;
设arr:number[]=[];
对于(var i=0;i<2;i++)arr=[…arr,i];
这是我的国家({
selectedItems:arr
},函数回调(){
console.log(this.state)//将具有更新的值
});
console.log(selectedItems);//不会打印任何内容,因为您从不分配
selectedItems=arr;
console.log(selectedItems);//将具有更新的值
}
}
A类{
选择(e){
让{selectedItems}=this.state;
设arr:number[]=[];
对于(var i=0;i<2;i++)arr=[…arr,i];
这是我的国家({
selectedItems:arr
},函数回调(){
console.log(this.state)//将具有更新的值
});
console.log(selectedItems);//不会打印任何内容,因为您从不分配
selectedItems=arr;
console.log(selectedItems);//将具有更新的值
}
}
您在哪里/何时登录?(我不理解您的示例代码。)setState
是异步的。作为一个数组是不相关的<代码>设置状态不关心类型。您在哪里/何时登录?(我不理解您的示例代码。)setState
是异步的。作为一个数组是不相关的setState
不关心类型。这不起作用,您需要将This
关键字绑定到该回调函数。检查下面的答案。未绑定且似乎有效这将不起作用,您需要将this
关键字绑定到该回调函数。请检查下面的答案。没有束缚,似乎在工作谢谢,我真傻,我才意识到这就是我一直以来所错过的,我真傻,我才意识到这就是我一直以来所错过的