【问题标题】:How to set default value of react-select after getting data from API从 API 获取数据后如何设置 react-select 的默认值
【发布时间】:2021-12-22 20:03:59
【问题描述】:

我有一个反应选择组件,我想更新数据,所以当我从我的 API 获取数据时,我想将我的数据设置为反应选择,我使用此代码。

我已创建状态并使用 useEffect 从 API 获取数据

const [currency, setCurrency] = useState([]);
    useEffect(() => {
        if (sessionStorage.getItem('AccountId')) {
            axios.get(process.env.REACT_APP_SQL_API_URL + 'Organisation/' + query.search.split('=')[1])
                .then(res => {
                    setCurrency({ label: res.data[0].currency, value: res.data[0].currency });
                })
                .catch(error => console.log(error.response))
        }
        else {
            history.push('/login')
        }
    }, [])

这是反应选择代码

<Controller
                                                                    rules={{ required: true }}
                                                                    name="currency"
                                                                    control={control}
                                                                    render={({ field: { onChange } }) =>
                                                                        <Select
                                                                            onChange={(e) => {
                                                                                onChange(e)
                                                                                //handleSelect(e)
                                                                            }}
                                                                            options={[{ value: 'USD', label: 'USD $' }, { value: 'TZS', label: 'TZS' }]}
                                                                            defaultValue={[currency]}
                                                                        />
                                                                    }
                                                                />

【问题讨论】:

    标签: reactjs react-hooks material-ui react-select


    【解决方案1】:

    你需要有一个状态:

      const [currency, setCurrency] = useState([]);
        
            <Controller
                         rules={{ 
                         required: true }}
                         name="currency"
                         control={control}
                         render={({ field: { onChange } }) =>
            <Select
                   onChange={(e) => {
                   onChange(e)
                   //handleSelect(e)
                   console.log(e.target);
                   console.log(e.target.value);
                   setCurrency(state=>[ //change state ])
                   }}
                   options={[{ value: 'USD', label: 'USD $' }, { value: 'TZS', label: 'TZS' }]}
                                                                                    
                   defaultValue={currency}
                   value={currency}
           />
           }
           />
    

    【讨论】:

    • 会有什么而不​​是//改变状态
    • 好的,我放了 value 道具,但它没有改变
    • 你能得到console.log(e.target.value);或 console.log(e.target); ?
    • 感谢 Samira 的帮助,我更改了 setCurrency 中的状态,非常感谢
    猜你喜欢
    • 1970-01-01
    • 2017-09-15
    • 2021-10-30
    • 2022-08-10
    • 1970-01-01
    • 2020-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多