映射选择器项目时如何使用选择器更改选择器值?

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

我无法成功更改选择器选择的值。当我单击其他值时,它会正确更改,在0.2秒后,它将再次输入第一个值。我不知道为什么...

您能帮我吗?

 const [espaceSelected, setEspaceSelected] = useState(null);

    useEffect(() => {
        getEspaces().then(data => {
            setEspaces(data);
            AsyncStorage.setItem('id_espace',espaces[0].id_espace);
            setEspaceSelected(espaces[2].name);
        })
    }, []);

...
return ( ...
  <Picker selectedValue={espaceSelected ? espaceSelected : null} onValueChange={(value) => { setEspaceSelected(value.name);}}>
                {espaces ? espaces.map(e => {
                    return (
                        <Picker.Item color="#7B65AE" label={e.name} value={e.id_espace} />);
                }) : null}
            </Picker>
);

提前感谢

reactjs react-native picker
1个回答
0
投票

Picker的呈现代码中,您将值设置为value={e.id_espace},然后尝试访问value.name中的onValueChange,但是value仅是id,而没有具有idname

例如,您可以通过在各处使用name而不将其与id或对象混合来解决它:

...onValueChange={(name) => { setEspaceSelected(name); }} ...
...
<Picker.Item color="#7B65AE" label={e.name} value={e.name} />
© www.soinside.com 2019 - 2024. All rights reserved.