我不能成功更改选择器的选取值。当我点击其他值时,它会正确地改变,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>
);提前感谢
发布于 2020-04-18 06:30:18
在Picker的呈现代码中,您将值设置为value={e.id_espace},然后尝试访问onValueChange中的value.name,但value只是id,而不是具有id和name的对象。
例如,您可以通过在任何地方使用name而不将其与id或对象混合来修复它:
...onValueChange={(name) => { setEspaceSelected(name); }} ...
...
<Picker.Item color="#7B65AE" label={e.name} value={e.name} />https://stackoverflow.com/questions/61281415
复制相似问题