我对javascript很新,我目前正在创建一个显示数据库数据的Web客户端。我猜是很标准的东西。我使用react.js并安装了react-widgets以获得一些不错的小部件。我使用的comboxbox是从mongo数据库获取数据,具体取决于从另一个comboxbox中选择的集合。因此,通过更改集合,更新内部数据以反映更改。这很好用,但我似乎无法设置默认值。这里是渲染comboxbox的代码:
<Combobox onChange= {this.handleOnChange} data = {this.state.myValues} defaultValue= {this.state.myValues[0]}/>
我遇到过这个问题,其中有几个小部件似乎无法动态更新。如果我第一次渲染所有数据(例如静态数据),它们就可以工作,但如果数据最初是空的并且之后填充,则它们不会。 *我确实调用了setState来调用render函数。
我错过了什么吗?这是一个我不明白的JavaScript问题吗?
谢谢!
答案 0 :(得分:0)
我认为使用value
道具而不是defaultValue
可能会更好,它会让您更好地控制组件,并且在状态发生变化时会重新填充表单元素。
答案 1 :(得分:0)
尝试用条件包装组合框。
类似这样的东西
{ this.state.myValues[0] &&
YOUR_TAG_COMBO
<Combobox onChange= {this.handleOnChange} data = {this.state.myValues} defaultValue= {this.state.myValues[0]}/>
}