更新从国家多选选项,这样的选择不会出现不触发material_select

问题描述 投票:0回答:1

我更新的选择的基础上我的组件的状态的选项。

状态被初始设置为一个空数组但是一旦从API装载时,状态被更新,以便选项应该更新。

虽然发生这种情况(并且可以在开发者工具中可以看出),它看起来像material_select需要被调用来更新它的外观。

我可以从控制台得到这个通过调用$(“选择”)中正确显示。material_select()。

我认为,造成问题的路线是在这里:https://github.com/react-materialize/react-materialize/blob/master/src/Input.js#L38

有没有一种方法,我可以手动调用此而我的组件里面?

请注意,我使用的是创建反应的应用程序内。

<Row>
  <Input
    id="categories"
    type="select"
    label="Categories"
    multiple={true}
    onChange={this.handleChange}
    s={12}
  >
    {this.state.categories.map(category => {
      return (
        <option key={category._id} value={category._id}>
          {category.name}
        </option>
      );
    })}
  </Input>
</Row>
reactjs materialize create-react-app
1个回答
1
投票

您可以通过渲染输入组件一旦你选择从API来解决这个问题。

您可以初始化状态为空,而不是空数组:

state = {
  categories: null;
}

因此,在你的渲染方法,有条件(仅当选项可用)呈现组件:

render() {
    return (
      <Row>
        {this.state.categories ? (
          <Input
            id="categories"
            type="select"
            label="Categories"
            multiple={true}
            onChange={this.handleChange}
            s={12}
          >
            {this.state.categories.map(category => {
              return (
                <option key={category._id} value={category._id}>
                  {category.name}
                </option>
              )
            })}
          </Input>
        ) : null}
      </Row>
    )
}
© www.soinside.com 2019 - 2024. All rights reserved.