为了账号安全,请及时绑定邮箱和手机立即绑定

无法让状态在 React Native 中工作

无法让状态在 React Native 中工作

绝地无双 2023-05-11 16:36:41
我对 React Native 中的状态概念还很陌生,无法使用它们来更改组件的状态。我有三个文本组件,一个是问题,另外两个是答案(是和否),另一个文本组件检查我对问题的回答是否已写,因此检查文本组件。当我针对某个问题单击“是”时,如果答案为“是”,则最后一个检查组件的状态应更改为“正确”,如果答案为“否”,则更改为“错误”。所以基本上,这就是我想要做的:这是我到目前为止所拥有的:这是我得到的错误:这是我到目前为止的代码:import React, { useState, useEffect } from 'react';import { StyleSheet, Text, View, TouchableOpacity, Alert, ScrollView, Image } from 'react-native';// import TextComp from './components/Home2'export default function App() {  const [answer, setAnswer] = useState('answer');  const [correctAns, setCorrectAns] = useState('');  const useEffect = () => {    if (answer == 'answer') {      setCorrectAns('please answer!');    } else if (answer == 'Yes') {      setCorrectAns('Right');    } else if (answer == 'No') {      setCorrectAns('Wrong');    };  };  const corAns = () => { Alert('Your answer was ', correctAns) }  return (    <ScrollView style={styles.container}>      <View style={{ alignItems: 'center' }}>        <Image source={require('./images/pic.jpeg')} style={styles.uriImg} />        <Text style={styles.title}>Is this Mt. Fuji?</Text>        <TouchableOpacity          onPress={() => setAnswer('Yes')}>          <Text style={styles.text}>Yes</Text>        </TouchableOpacity>        <TouchableOpacity          onPress={() => setAnswer('No')}>          <Text style={styles.text}>No</Text>        </TouchableOpacity>        <TouchableOpacity          onPress={corAns}>          <Text style={styles.text2}>Check</Text>        </TouchableOpacity>        <Image source={require('./images/yellow.png')} style={styles.uriImg} />}谁能告诉我怎么做?谢谢!
查看完整描述

1 回答

?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

像这样使用 useEffect


useEffect(() => {

 if (answer === 'Yes') {

  Alert.alert('Right')

 }

 if (answer === 'No') {

 Alert.alert('Wrong')

 }

}, [ answer ])

或按检查按钮


   const checkAnswer = () => {

     if (answer === 'Yes') {

      Alert.alert('Right')

     }

     if (answer === 'No') {

     Alert.alert('Wrong')

     }

     if (answer === 'answer') {

          Alert.alert('please answer')

     }

    }

设置检查按钮 onPress={checkAnswer}



查看完整回答
反对 回复 2023-05-11
  • 1 回答
  • 0 关注
  • 109 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信