如何清除反应选择中的值

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

我已经在onChange内创建了此函数,以使用react-select处理我的输入。就提交输入和以后使用它而言,它工作得很好。问题是,clear属性不起作用。在onChange内创建函数之前,单击“ x”后该函数便可以正常工作。但是现在不是。有什么帮助吗?

  {["role1", "role2", "role3"].map(role => (
          <Select
            cacheOptions
            defaultOptions
            loadOptions={this.loadOptions}
            key={role}
            getOptionLabel={i => i.full_name}
            getOptionValue={i => i.id}
            closeMenuOnSelect={false}
            isMulti
            className="selectStyle"
            placeholder={t(role)}
            value={form.users.filter(item => item.role === role)}
            onChange={values => {
              let newValues = form.users;

              values.forEach(item => {
                if (
                  newValues.filter(v => v.id === item.id && v.role === role)
                    .length
                ) {
                  return;
                }

                item.role = role;
                newValues.push(item);
              });

              setFormValue({ name: "users", value: newValues });
            }}
            clearValue={() => {
              setFormValue({
                name: "users",
                value: form.users.filter(item => item.role !== role)
              });
            }}
          />

我希望我能在这里得到一些帮助。提前致谢。

reactjs react-select
1个回答
0
投票

您可以尝试使用this.setState吗?

        clearValue={() => {
          this.setState({
            name: "users",
            value: form.users.filter(item => item.role !== role)
          });
        }}
      />
© www.soinside.com 2019 - 2024. All rights reserved.