javascript - 组件渲染时如何设置 State false? - 注册护士

标签 javascript react-native

我是应用程序开发新手。如下所示,当“value”为 false 时,我希望呈现“Test”组件并且加载状态为 false。但是当我按照下面的代码执行操作时,出现下图中的错误。当此测试组件呈现在页面上时,如何将 state 设置为 false 而不会出现错误?

enter image description here

import React, { useState } from 'react'
import { Text, View } from 'react-native'


const WordPage = () => {

    let value = false

    const [loading, setLoading] = useState(false)

    const Test = () => {
        setLoading(false)
        return (
            <Text>OFFLINE</Text>
        )
    }

    return (
        <View>
            {value ?
                <Text>ONLINE</Text>
                :
                <Test />
            }
        </View>
    )
}

export default WordPage

最佳答案

您可以将回调作为 prop 传递,并在渲染 Test 组件后调用它。

import React, { useEffect, useState } from "react";
import { Text, View } from 'react-native'

const Test = ({ onRendered }) => {
  useEffect(onRendered, []);
  return <Text>OFFLINE</Text>;
};

const WordPage = () => {
  let value = false;
  const [loading, setLoading] = useState(false);

  return (
    <View>
      {value ? (
        <Text>ONLINE</Text>
      ) : (
        <Test
          onRendered={() => {
            setLoading(false);
          }}
        />
      )}
    </div>
  );
};

export default WordPage;

关于javascript - 组件渲染时如何设置 State false? - 注册护士,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69965329/

相关文章:

javascript - onRightButtonPress React Native 未定义不是对象 NavigatorIOS

node.js - 使用axios上传图片的问题

javascript - 每当 DIV 第一次可见时加载(延迟加载)Div

c# - chrome adobe pdf reader javascript 黑屏

java - react native : How to fix version issue in Gradle

react-native - 检查 `ExpoRootComponent`的渲染方法

javascript - 在 OpenLayer 中更平滑地加载图 block

javascript - Vue-auth 在 vuex 操作中访问 $auth

javascript - 函数调用中的字符串与函数中定义的字符串的处理方式不同 - 奇怪的错误

android - 无法使用真机进行react开发