如何在react native中单击按钮时获取值?

tyu7yeag  于 2023-05-01  发布在  React
关注(0)|答案(2)|浏览(150)

我有一个基本的表单,其中包括两个文本输入和一个按钮,使用的是从react native CLI创建的项目。

const Signup = () => {
  const [username, setUsername] = useState('')
  const [password, setPassword] = useState('')

  const handleChangeUsername = () => {
    setUsername(username)
  }
  const handleChangePassword = () => {
    setPassword(password)
  }

  const btnSignup = () => {
    // auth()
    // .createUserWithEmailAndPassword(setUsername,setPassword)
    // .then(() => {
    //   console.log('User account created & signed in!');
    // })
  }

  return (
    <View>
      <View>
        <TextInput onChangeText={handleChangeUsername}> Kullanıcı Adı </TextInput>{' '}
        <TextInput onChangeText={handleChangePassword}> Password </TextInput>{' '}
      </View>{' '}
      <View>
        {' '}
        <Button onPress={btnSignup} title="TIKLA" />{' '}
      </View>
    </View>
  )
}

export default Signup

我不能使用btnSignup方法,因为当它运行时会给予一个错误。这里的问题是什么?

ej83mcc0

ej83mcc01#

1.你是在安慰我。log(setUsername)是一个状态设置函数。如果你想记录你需要写的值:console.log(username)
1.你还需要更新你的handleChangeUsername和handleChangePassword来接收输入值和更新状态,如下所示:const handleChangeUsername = (value) => { setUsername(value); }
如果你想记录用户名和密码,你可以在btnSignup中这样做,看起来像这样:

const btnSignup = () => {
  console.log('Username:', username);
  console.log('Password:', password);
}
j8ag8udp

j8ag8udp2#

我会替换你的文字输入如下

<View>
<TextInput onChangeText={setUsername} value={username} placeholder="Username" />
<TextInput onChangeText={setPassword} value={password} placeholder="Password" secureTextEntry={true}/>
</View>

然后我没有得到错误时点击按钮。如果你试图控制台日志的用户名写控制台。log(username)而不是console。log(setUsername)

相关问题