React Native,<TextInput> onChange{(text) => setState(text)} 返回一个对象而不是字符串。尽管默认值是一个字符串。为什么
React Native, <TextInput> onChange{(text) => setState(text)} is returning an object instead of a string. Eventhough the default value is a String. Why
<TextInput
onChange={(text) => {
setEmail(text);
}}
style={styles.textInput}
placeholder="Email"
/>
<TextInput
onChange={(text) => setPassword(text)}
style={styles.textInput}
secureTextEntry
placeholder="Password"
/>
我正在尝试设置电子邮件和密码状态
const [email, setEmail] = useState("default");
const [password, setPassword] = useState("default");
我需要使用它们通过 firebase auth 登录,但是只要我在字段中输入一个值,状态就会更改为对象,并且 firebase 函数只接受字符串值,我已经尝试将这些值转换为字符串() 在使用 set 方法时不起作用。
这里可能出了什么问题?
截图:
在值之前它是字符串,在输入值之后它们变成对象。
onChange={(text) => setPassword(text)}
改成这样
onChange={(event) => setPassword(event.target.value)}
文本是一个事件对象
实例sandbox
这是因为 onChange 的参数是 object
而不是 text
。
{ nativeEvent: { eventCount, target, text} }
text
是 object
而不是 string
。
onChange={(text) => {
setEmail(text);
}}
解决方案是使用onChangeText事件,将text
作为string
传递。
<TextInput
onChangeText={newText => setEmail(newText)}
/>
<TextInput
onChange={(text) => {
setEmail(text);
}}
style={styles.textInput}
placeholder="Email"
/>
<TextInput
onChange={(text) => setPassword(text)}
style={styles.textInput}
secureTextEntry
placeholder="Password"
/>
我正在尝试设置电子邮件和密码状态
const [email, setEmail] = useState("default");
const [password, setPassword] = useState("default");
我需要使用它们通过 firebase auth 登录,但是只要我在字段中输入一个值,状态就会更改为对象,并且 firebase 函数只接受字符串值,我已经尝试将这些值转换为字符串() 在使用 set 方法时不起作用。
这里可能出了什么问题?
截图:
在值之前它是字符串,在输入值之后它们变成对象。
onChange={(text) => setPassword(text)}
改成这样
onChange={(event) => setPassword(event.target.value)}
文本是一个事件对象
实例sandbox
这是因为 onChange 的参数是 object
而不是 text
。
{ nativeEvent: { eventCount, target, text} }
text
是 object
而不是 string
。
onChange={(text) => {
setEmail(text);
}}
解决方案是使用onChangeText事件,将text
作为string
传递。
<TextInput
onChangeText={newText => setEmail(newText)}
/>