Как очистить значения в реакции-выбора - PullRequest
0 голосов
/ 30 января 2020

Я создал эту функцию внутри onChange, чтобы обрабатывать мои входные данные с помощьюact-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)
              });
            }}
          />

Я надеюсь, что смогу получить помощь здесь. Заранее спасибо.

1 Ответ

0 голосов
/ 30 января 2020

Можете ли вы попробовать использовать this.setState.

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