Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript es6设置状态中的计算密钥_Javascript_Reactjs_Ecmascript 6 - Fatal编程技术网

Javascript es6设置状态中的计算密钥

Javascript es6设置状态中的计算密钥,javascript,reactjs,ecmascript-6,Javascript,Reactjs,Ecmascript 6,我下面的代码有什么问题?我想使用动态变量设置状态 function(key) { this.setState({ order[key]: `${this.state.order[key]}` === true ? 'asc' : 'desc' }) } 如果kye是name,我希望我有这个.state.ordername请尝试以下方法 function(key) { let value = this.state.order[key] == t

我下面的代码有什么问题?我想使用动态变量设置状态

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

如果kye是name,我希望我有这个.state.ordername

请尝试以下方法

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

设置状态时,不能直接修改对象或数组内部值

所以你必须像下面这样做

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

谢谢

来自插值文字的字符串,否则将永远不会===true。您对${this.state.order[key]}==true有何期望asc':'desc'?正如Bergi所说,现在我更仔细地看了看,这段代码存在多个问题,不仅仅是语法问题。您能告诉我们您希望代码在没有计算属性键的情况下做什么吗?最好使用括号语法属性赋值和if/else语句。或者通过包含一些示例参数值。