我一直在研究ReactJS,但对React Native来说是全新的。我正在尝试在TextInput上使用useRef
,但它不起作用。
const Playground = () =>{
const inputName = useRef();
const addName = e => {
Alert.alert(inputName.current.value);
}
return (
<SafeAreaView>
<TextInput ref={inputName} placeholder="name"></TextInput>
<Button title="add" onPress={addName}></Button>
</SafeAreaView>
);
}
export default Playground;
对于我在上面的ReactJS中使用的代码,当按下addName
按钮时,它总是返回空字符串。我也尝试了如下useEffect
,但得到了相同的结果。
useEffect(() => {
if(!inputName.current) return;
Alert.alert(inputName.current.value);
}, [inputName.current])
我试着找了一下,但找不到答案。我可以像ReactJS一样在React Native中使用useRef
吗?
你可以试试这个:
inputName.current._root.props.value
我相信React Native强烈鼓励使用state而不是ref。在这种特殊情况下,您可以使用useState
。
另请参阅直接操作