ReactJs无法更新数据

<select id="ssss" selectedIndex = { this.state.type } >
         <option value="1">游戏</option>
         <option value="2">招聘</option>
         <option value="3">宣传</option>
         <option value="4">其他</option>
</select>

当我用setState({type:2})之后,select并没有发生变化,但是state中的属性确实已经改变。
我现在的做法是在callback里面自己去修改,不过这样也违背了reactjs的本意,有什么好的方法可以解决吗


setState({
   type:project.type
},function(){
    document.querySelector("#ssss").selectedIndex = project.type;
})
阅读 3.7k
2 个回答

react中select跟html原生不太一样,react中要改变select选中的值,要通过select标签中的value设置,如下:

  <select value="B">
    <option value="A">Apple</option>
    <option value="B">Banana</option>
    <option value="C">Cranberry</option>
  </select>

如果要选中两个值,设置select标签中的value值为数组,如
<select multiple={true} value={['B', 'C']}>

参考: 官方文档

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题