为啥我不能在 React 中设置这个状态?
Posted
技术标签:
【中文标题】为啥我不能在 React 中设置这个状态?【英文标题】:Why can I not set this state in React?为什么我不能在 React 中设置这个状态? 【发布时间】:2015-11-18 01:53:30 【问题描述】:我正在尝试在我的 React 组件中设置状态,以便它在其子项的输入值发生变化时发生变化。我可以控制台记录event.target.name
和event.target.value
并获得预期的字符串,但我无法编译这个handleChange
函数:
handleChange: function(event)
this.setState(event.target.name: event.target.value);
,
我很困惑,因为我收到错误:Unexpected Token
在我的 this.setState(event.target.name: event.target.value);
语句的行中。
我的子组件看起来像:
<div className='inputrow'>
<label className='orange'></label>
<label className='inputname'>Company</label>
<input name='company' onChange=this.props.handleChange className='inputtext'></input>
</div>
我的 getInitialState 是:
getInitialState: function()
return
'company': '',
'sensor': '',
'trigger': '',
'sourceip': '',
'sourceport': '',
'destip': '',
'destport': '',
'sourcename': '',
'destname': '',
'comments': '',
'creator': ''
;
【问题讨论】:
【参考方案1】:在 ES6 之前,您不能在对象字面量中使用动态键。
handleChange: function(event)
var obj = ;
obj[event.target.name] = event.target.value;
this.setState(obj);
,
【讨论】:
this.setState([event.target.name]: event.target.value);也有效。但是语法是什么?我不知道,你知道吗?以上是关于为啥我不能在 React 中设置这个状态?的主要内容,如果未能解决你的问题,请参考以下文章
为啥我不能在我的 Paypal IPN 文件中设置 cookie
React Hooks:如何在 useEffect 中设置状态?
在 react-apollo 的 Query 组件中设置状态