繁体   English   中英

类型 'boolean' 不可分配给类型 '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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM