首页 > 解决方案 > className 条件不是动态的?

问题描述

我需要根据布尔状态显示和隐藏一列。但它只会触发一次。

我正在尝试根据布尔状态设置显示无并阻止,我的应用程序更新布尔状态但我的列不会读取它

<Row style={ (values.boolean ? styles.visible : styles.hidden) }>

我正在使用 setState 方法来更改我的布尔值:

this.setState({ boolean: Object.keys(response.tracks).length && Object.values(response.tracks).length ? true : false })

编辑:很抱歉在 setstate 上错过了咒语,但我的代码是正确的

我的应用程序实际上会更新状态,但行不会改变

const styles = {
    visible: {
        display: 'block'
    },
    hidden: {
        display: 'none'
    }
}

编辑:我发现了问题,我试图在一个大对象的错误路径上设置状态

标签: javascriptreactjs

解决方案


正如@Panther 已经回答你的那样:

this.setState 获取一个带有键值作为参数的简单对象 - 您需要做的就是将调用更改为:

this.setState({ boolean: true })

推荐阅读