我如何使 TextInput 在 React Native 提交后清除
How do i make so the TextInput clears after submit in react native
我的代码中有一个 TextInput 在提交后无法自行清除,我不知道为什么会这样或如何解决它。我看过其他有这种问题的帖子?但是 none 有效,或者我真的不知道将代码放在哪里以便在提交后自行清除。
代码
import React, { useState } from 'react';
import {
StyleSheet,
Text,
View,
TextInput,
Button,
} from 'react-native';
export default function AddList({ submitHandler }) {
const [text, setText] = useState('');
const changeHandler = (val) => {
setText(val);
}
return(
<View style={styles.container}>
<View style={styles.wrapper}>
<TextInput
style={styles.input}
placeholder='text'
onChangeText={changeHandler}
/>
<Button onPress={() => submitHandler(text)} title='ADD' color='#333' />
</View>
</View>
);
}
在useState之后新建一个函数如下:
const onSubmit = useCallback(() => {
if (submitHandler) submitHandler(text)
setText("")
}, [text])
修改textinput和button如下:
<TextInput
style={styles.input}
placeholder='What Tododay?'
onChangeText={changeHandler}
value={text}
/>
<Button
onPress={onSubmit}
title='ADD TO LIST'
color='#333'
/>
不要忘记从 react 导入 useCallback。
希望对你有所帮助
我的代码中有一个 TextInput 在提交后无法自行清除,我不知道为什么会这样或如何解决它。我看过其他有这种问题的帖子?但是 none 有效,或者我真的不知道将代码放在哪里以便在提交后自行清除。
代码
import React, { useState } from 'react';
import {
StyleSheet,
Text,
View,
TextInput,
Button,
} from 'react-native';
export default function AddList({ submitHandler }) {
const [text, setText] = useState('');
const changeHandler = (val) => {
setText(val);
}
return(
<View style={styles.container}>
<View style={styles.wrapper}>
<TextInput
style={styles.input}
placeholder='text'
onChangeText={changeHandler}
/>
<Button onPress={() => submitHandler(text)} title='ADD' color='#333' />
</View>
</View>
);
}
在useState之后新建一个函数如下:
const onSubmit = useCallback(() => {
if (submitHandler) submitHandler(text)
setText("")
}, [text])
修改textinput和button如下:
<TextInput
style={styles.input}
placeholder='What Tododay?'
onChangeText={changeHandler}
value={text}
/>
<Button
onPress={onSubmit}
title='ADD TO LIST'
color='#333'
/>
不要忘记从 react 导入 useCallback。
希望对你有所帮助