![](/img/trans.png)
[英]Type 'boolean' is not assignable to type 'Promise<boolean>'
[英]Type 'boolean' is not assignable to type 'boolean[]'
我想在基于 boolean 数组的选项卡之间创建一个切换。 但是,我不知道如何更换 switchTabs function 以阻止显示此错误。 界面是这样构建的:
interface IData {
setData: boolean[];
}
我的构造函数如下所示:
constructor(props: IData) {
super(props);
this.state = {
setData: [true, false, false]
}
}
但是,发生错误的方法( Type 'boolean' is not assignable to type 'boolean[]' )如下所示:
private switchTabs() {
this.setState({ setData: !this.state.setData});
}
根据@evolutionxbox 评论:
private switchTabs() { this.setState({ setData: this.state.setData.map( x=>;x}); }
using.map 将对数组中的每个元素应用 function。 这是一个很好,整洁的符号。 这是反转数组中的每个 boolean 值。 我不确定如果您的数组包含非布尔元素会发生什么。
您拒绝评估为 false 的布尔数组.this.state.setData
。 从而抛出该错误。
相反,您应该创建数组的副本并修改所需的索引
private switchTabs(tabIndex) {
const newData = [...this.state.setData]; //copying the array
newData[tabIndex] = !newData[tabIndex];
this.setState({ setData: newData});
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.