为啥我不能在 React 中设置这个状态?

Posted

技术标签:

【中文标题】为啥我不能在 React 中设置这个状态?【英文标题】:Why can I not set this state in React?为什么我不能在 React 中设置这个状态? 【发布时间】:2015-11-18 01:53:30 【问题描述】:

我正在尝试在我的 React 组件中设置状态,以便它在其子项的输入值发生变化时发生变化。我可以控制台记录event.target.nameevent.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 组件中设置状态

在 React.js 中设置和重置状态

为啥我不能在 cmd 中设置环境变量。无法使用 azcopy 从 S3 复制

在 React 中设置复选框“检查”属性