React native 使用条件呈现反应本机useState字符串

React native 使用条件呈现反应本机useState字符串,react-native,jsx,React Native,Jsx,我正试图以与useState相同的方式执行if语句,但它失败了 我有这些价值观 let [L01, setL01] = useState(''); let [L02, setL02] = useState(''); let [level01, setlevel01] = useState(false); let [level01_Open, setlevel01_Open] = useState(false); let [level01_img, setlevel01_img] = useSt

我正试图以与useState相同的方式执行if语句,但它失败了

我有这些价值观

let [L01, setL01] = useState('');
let [L02, setL02] = useState('');

let [level01, setlevel01] = useState(false);
let [level01_Open, setlevel01_Open] = useState(false);
let [level01_img, setlevel01_img] = useState(false);
let [locked_level01, setlocked_level01] = useState(false);

let [level02, setlevel02] = useState(false);
let [level02_Open, setlevel02_Open] = useState(false);
let [level02_img, setlevel02_img] = useState(false);
let [locked_level02, setlocked_level02] = useState(false);
然后L01设置为“是”,而L02设置为“否”

然后,我尝试基于该数据运行if语句,但是它将L01识别为Yes,但是它无法将if statmenet中的值设置为true

 if ( L01 == 'Yes') {
        setlevel01(true)
        setlevel02_Open(true)
        setlevel01_img(true)
       } else {
        setlevel01(false)
        setlevel02_Open(false)
        setlevel01_img(false)
       }

       if ( L02 == 'Yes') {
        setlevel02(true) 
        setlevel01_img(false)
        setlevel02_img(true)
       } else  {
        setlevel02(true)
        setlevel02_img(false)
      }

您需要使用
useffect
设置效果挂钩,以查看
L01
L02
的更改:

useffect(()=>{
//当L01或L02更改时,在此处定义任何登录和状态更新
const L01Flag=L01==‘是’;
setlevel01(L01标志);
setlevel02_打开(L01标志);
setlevel01_img(L01标志);
const L02Flag=L02==‘是’;
setlevel02(L02标志);
setlevel01_打开(L02标志);
setlevel02_img(l02标志);
}[L01,L02]);

啊!非常感谢。你回答中帮助我的实际部分是,我需要一个完全独立的useEffect,因为我有一个最初设置数据的useEffect。问题是。为什么需要我在useEffect末尾创建一个数组?由于我在第一次使用效果时没有这样做,这有什么好处呢?
useffect
末尾的数组实际上告诉
useffect
何时执行。在这种情况下,
useffect
仅当
L01
L02
中的一个发生更改时才会执行。如果您从数据库中提取数据以将L01或L02设置为是或否,并且由于React Natives命令,您必须在useffect之后提取该数据,该怎么办?因为在我的第一个UseEffect中,如果我在数组创建错误后包含数组,说它无法读取属性,因为数据不在那里,我会这样做。你必须设置一个
UseEffect
hook来提取数据。当你将一个空数组传递到
useffect
的末尾时,这个钩子只运行一次,然后就像类组件中的
componentdidMount
一样,你可以在其中加载DB数据,然后更新状态。啊,这很有意义,如果我这样做的话:让[data,setData]=useState(useQuery(GetLevelsQuery));如何解构数据返回以设置变量L01和L02?