React Select 异步创建不保存到状态

React Select Async creatable doesn't save to the state

我正在使用 React select async creatable, 来自 api 的数据正确加载并且可以 select 它也可以创建新值 但是在 select 做出选择之后,如果没有,则创建一个新值,似乎我的 titleState 变空了,我尝试安慰状态,但在控制台

上给了我 blank/empty 值

const [titleState,setTitleState] = useState('')

const loadOptions = (inputValue, callback) => {
            axios.post(`sample/api`, {
                data: inputValue
            })
                .then(res => {
                    callback(res.data.map(i => ({
                        label: i.title,
                        value: i.title,
                    })))
                    console.log(res)
                })
                .catch(err => console.log(err))
    }

    const handleInputChange = (newValue) => {
        setTitleState(newValue)
    }

   const logState = () => {
      console.log(titleState) // logs empty in the devtools
   }



             <AsyncCreatableSelect
                        menuPortalTarget={document.body}
                        styles={{ menuPortal: base => ({ ...base, zIndex: 9999 }) }}
                        loadOptions={loadOptions}
                        onInputChange={handleInputChange}
                        placeholder="Title Trainings"
                    />


                 <Button onClick={logState}>Click</Button>


然后我有一些按钮,当点击将控制 titleState,但它不记录它。

您应该使用 onChange={handleInputChange} 而不是 onInputChange={handleInputChange}

  • onChange 在选择/创建新选项时触发。

  • onInputChange 写入新选项时触发。