指定react-bootstrap的FormControl的默认值

zmi*_*mii 6 javascript reactjs react-bootstrap

react-bootstrap@0.24.5我使用Input属性defaultValue指定在组合框中选择的起始值

<Input type='select'
             ref='templateSelect'
             defaultValue={this.state.templateId}
             onChange={this.handleTemplateChange}>
   {options}
</Input>
Run Code Online (Sandbox Code Playgroud)

应该如何处理这个react-bootstrap@0.30.7(最新的)Input不推荐使用的地方,这里应该使用的新组件FormControl不提供这样的属性?

应该value用呢?

<FormControl type='select'
             ref='templateSelect'
             value={this.state.templateId}
             onChange={this.handleTemplateChange}>
   {options}
</FormControl>
Run Code Online (Sandbox Code Playgroud)

或者类似这样的事情:

value={this.state.templateId || 'default value'}
Run Code Online (Sandbox Code Playgroud)

Yan*_*Tay 8

我没有测试这个,但是从FormControl的React Bootstrap 源代码看来,使用defaultValueprop应该可以工作:

<FormControl type="select"
  ref="templateSelect"
  defaultValue={this.state.templateId}
  onChange={this.handleTemplateChange}>
   {options}
</FormControl>
Run Code Online (Sandbox Code Playgroud)

  • 请注意,这可能在 Bootstrap 5 中发生了变化。请改用 `value=` 属性 (2认同)

Bre*_*rne 7

对于"react-bootstrap": "1.0.0-beta.14"value使用该道具:

<Form.Control as="select" value={user}>
    { users.map(opt => (<option>{ opt }</option>)) }
</Form.Control>
Run Code Online (Sandbox Code Playgroud)

  • @klendi 默认值不起作用, value 属性起作用:https://github.com/react-bootstrap/react-bootstrap/issues/2091 (5认同)