流星语义-UI反应:聚焦组件



我正在用流星,react和语义UI构建一个应用程序。我是这些框架/库中的新手。阅读文档后,我仍然不明白如何将重点放在组件上,因为有人说您不能做到这一点,其他人说您可以,但他们的榜样对我不起作用。在下面的示例中,options定义为常数,并从另一个文档导入,并且changeHospital&changeActivity功能只需将hospitalactivity的状态与data.value设置为:

          <Form.Field
            label='Hospital'
            control={Select}
            fluid
            search
            value={this.state.hospital}
            placeholder='Select hospital'
            options={hospitals}
            onChange={this.changeHospital}
          />
          <Form.Field
            label='Activity'
            control={Select}
            search
            fluid
            value={this.state.app}
            placeholder='Select activity'
            options={apps}
            onChange={this.changeActivity}
          />

我想要什么?

提交第一个字段后,我想自动更改对下一个字段的焦点,而无需按TAB键或使用鼠标光标选择。

以后编辑

如果您能比我更多的了解,则可以阅读:https://github.com/semantic-org/semantic-ui-react/blob/master/master/master/src/modules/dropdown/dropdown.js

他们说:

/** A dropdown can receive focus. */
tabIndex: PropTypes.oneOfType([
  PropTypes.number,
  PropTypes.string,
]),

免责声明:我不知道语义-UI反应,但我确实知道反应,所以这是基于您如何用正常的反应输入来解决它的猜测。

// Add ref to the field you want to focus
<Form.Field
    ref="activityField"
    label="Activity"
    control={Select}
    search
    fluid
    value={this.state.app}
    placeholder="Select activity"
    options={apps}
    onChange={this.changeActivity}
/>
// Update function from previous input
changeHospital() {
    ... // do what you already do, then change focus
    this.refs.activityField.focus()
}

在React输入上调用.focus()将其集中在此方面,但是Form.Field可能无法处理.focus(),在这种情况下它不起作用。

最新更新