es6在setState中计算密钥

时间:2017-12-21 06:29:18

标签: javascript reactjs ecmascript-6

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

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

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

2 个答案:

答案 0 :(得分:0)

请尝试以下方式

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

答案 1 :(得分:0)

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

所以你必须做类似下面的事情

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

由于