【发布时间】:2021-08-27 21:11:36
【问题描述】:
我正在尝试构建一个非常基本的登录屏幕 atm 作为未来的入门项目。
一切都在 TypeScript 和 React Native 中完成。
当我尝试使用 OnChangeText 函数时,电子邮件未设置为放入字段中的值,并且 console.log 仍然是“我是 [object Object]”
如何将输入值正确解析到变量中,以便在接下来的代码中正确使用?
对不起这个非常基本的问题,我遵循了一个或多或少只是前端的教程,现在看来我被后端的第一步卡住了:/
如果我理解正确,useState 挂钩应该将 email 声明为字符串(因此是 ''),然后使用 setEmail 将给定值输入到电子邮件中。 onCahngeText 给出的(email)不是这个变量而是输入框的值?
export default function App() {
const [email, setEmail] = useState('');
const [password, setPassword] = useState('');
return (
<LoginWrapper>
<Text>Enter UserName</Text>
<LoginInput
style={styles.text}
placeholder="username/email"
onChangeText={(email) => {
setEmail(email)
console.log("I am " + email)
}} />
<Text>Enter Password</Text>
<LoginInput
style={styles.text}
secureTextEntry
placeholder="Password"
onChangeText={(password) => setPassword(password)} />
</LoginWrapper>
);
}
编辑:我发现它现在正在工作一半,将输入的名称从电子邮件更改为输入
onChangeText={(input) => {
setEmail(input)
}}
但移动键盘在输入单个值后关闭。我不能写“Hello”,因为只有“H”才能通过。这可能只是使用 Expo 的副作用吗?
编辑:LoginInput 的代码
const LoginInput = styled.TextInput`
//styling
`
【问题讨论】:
-
请添加登录输入代码
-
@DipanSharma 完成
-
能否请您显示样式对象的导入