es6在setState中计算密钥

问题描述 投票:-2回答:2

我的代码下面有什么问题?我想使用动态变量setState。

function(key) {
    this.setState({
       order[key]: `${this.state.order[key]}` === true ? 'asc' : 'desc'
    })
}

如果kye是名字我希望我有this.state.ordername

javascript reactjs ecmascript-6
2个回答
0
投票

请尝试以下方式

   function(key) {
        let value = this.state.order[key] == true ? 'asc' : 'desc'
        this.setState({
           [order[key]]: value
        })
    }

0
投票

设置状态时,无法直接修改对象或数组内部值。 Please read more here

所以你必须做下面的事情

function(key) {
    let order = this.state.order;
    order[key] = (this.state.order[key] === true) ? 'asc' : 'desc';
    this.setState({order});
}

谢谢

© www.soinside.com 2019 - 2024. All rights reserved.