我正在使用React Native的Picker组件进行选择。不幸的是,它不起作用;我无法将onValueChange的值向上传递给handleChangeCharacter。以下是我目前所拥有的:
const [characterIndex, selectCharacter] = useState('0')
const handleChangeCharacter = ({ e }) => {
console.log('e', e)
selectCharacter(e)
}
const cStyle = "Style: " + characters[characterIndex].cStyle
return (
<View style={styles.container}>
<View style={styles.header}>
<Picker selectedValue={characterIndex} onValueChange={handleChangeCharacter}>
{
characters.map((character, index) => {
return (
<Picker.Item label={character.name} value={index} key={index} />
)
})
}
</Picker>
...
...
...
我正在使用React Hook来设置"characterIndex"的值。不幸的是,"e"总是"未定义">
感谢您的帮助。
问题出在handleChangeCharacter
中,您正在进行析构函数,但onValueChange
没有传递属性为e
的对象。文档
onValueChange-选择项目时的回调。这是用以下参数调用的:
itemValue:选择的项目的值道具
itemPosition:此选取器中所选项目的索引
// remove destructuring
const handleChangeCharacter = (value, index) => {
console.log('value', value, index) // equals to index which is set here value={index}
selectCharacter(value)
}