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语句。或者通过包含一些示例参数值。