gpt4 book ai didi

javascript - 为什么我的展开运算符返回 SyntaxError : Unexpected Token?

转载 作者:行者123 更新时间:2023-12-01 02:26:28 26 4
gpt4 key购买 nike

这段代码告诉我,我在 onInputBlur 函数的 setState 中使用的扩展运算符。这个语法不正确吗?我在其他组件中使用相同的语法并且没有任何问题。这是一个简单的语法问题,还是您怀疑它与更大的问题有关?

谢谢。

import React from 'react';

class StateSelect extends React.Component {
constructor(props) {
super(props)

this.state = {
inputCSS: this.props.styles.input || {}
}


this.onInputBlur = this.onInputBlur.bind(this)
}

onInputBlur = (event) => {
let choice = event.target.value
const { styles } = this.props

if(choice){
return this.setState(state=> {
inputCSS: {
...state.inputCSS,
border: '1px solid green'
}
})
} else {
return this.setState(state=> {
inputCSS: {
...state.inputCSS,
border: '1px solid red'
}
})
}

}

render() {
const { styles } = this.props
return (
<div style={styles.formInput}>
<select id="state" name="state" onChange={this.props.saveInputVal} onBlur={this.onInputBlur} style={this.state.inputCSS}>
<option value disabled selected>State</option>
{Object.keys(States).map((key) => {
return ( <option key={key} value={key}>{States[key]}</option> )
})}
</select>
</div>
)
}
}

最佳答案

问题不在于扩展语法。如果您想从 arrow 函数返回一个对象,那么您必须将其括在 () 括号中。

  return this.setState(state=> ({
inputCSS: {
...state.inputCSS,
border: '1px solid green'
}
}))

关于javascript - 为什么我的展开运算符返回 SyntaxError : Unexpected Token?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48754542/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com