javascript - Reactjs 的 If-Else 状态

标签 javascript html reactjs

我正在尝试根据状态值获取 if-else 语句。 我的代码设置为无论何时何地都可以更改状态 <select>元素更改为。

我正在尝试做这样的事情:

if(this.state{value:} == "string")
{
   //Do this
}

但是似乎无法正确执行此操作。什么是更好的建议或正确的方法?

我正在尝试的实际代码:

  7     this.state = {value: 'empty'};
  8   }
  9   SelectChange = (event) => {
 10     this.setState({value: event.target.value});
 11     if(this.state[value] == "string" )
 12     {
 13       console.log("string");
 14     }
 15   }
 16   /*}
 17   AddListener = (event) => {
 18     var id = event.target.id;
 19     var selectElements = document.getElementById(id);
 20     var stringSpec = id.substr(10, 11);
 21     var specLeng = "specifySection" + stringSpec;
 22     //console.log("This Id: " + id + "NumString: |" + stringSpec + "| New Id: "     + specLeng);*/
 23     /*selectElements.addEventListener("change", function(){
 24       moreInfo(id, specLeng);
 25     }, false); */
 26   render (){
 27     const {SelectChange} = this;
 28     const {value} = this.state;
 29     return (
 30       <div>
 31         <div>
 32           <label><strong>New Field </strong></label>
 33           <div id="remove-" className="remove" style={{display: "inline", visibi    lity: "hidden"}}>
 34            <label> --Remove </label> <input type="checkbox" id="removeBox" class    Name="rmvCheckbox" />
 35             <br />
 36           </div>
 37           <label> Name: </label>
 38           <input id="name-" className="name" type="text" name="name" /> <br />
 39           <label> Description: </label>
 40           <input id="description-" className="description" name="description" />     <br />
 41           <label> Datatype: </label>
 42           <select value={value} onChange={SelectChange} id={`selectData-${this.p    rops.number}`} className="selectData" name="selectData" /*onClick={AddListener}*    />

最佳答案

this.setState({}) 是一个异步函数。因此,当您在此函数之后的 if 条件下使用 this.state.value 时。该值尚未设置。所以你可以从参数传递的值

if(event.target.value === "string")

或者你可以使用回调函数

this.setState({value: event.target.value}, () => {
  if(this.state.value === 'string') {
    // Do what you want here
  }
})

关于javascript - Reactjs 的 If-Else 状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54937571/

相关文章:

HTML 资源在 Debug模式下正确加载,而不是在 Release模式下正确加载

css - 垂直分区间距

javascript - 图像未输出到目的地

javascript - 表示为 javascript 坐标数组的多边形联合

javascript - 具体的正则表达式测试

Html5 全屏视频

javascript - 如何在react中访问选项的自定义属性值

javascript - 包版本更改时如何通知?

javascript - 通过附加 URL 参数来循环 URL

javascript - 在 React 中连接变量和字符串