javascript - 为什么在使用 useState 时初始加载状态设置为 true?

标签 javascript reactjs react-hooks use-effect use-state

我很困惑为什么 isLoading 标志在初始状态下设置为 true。最初不应该是 false 吗?考虑这个简单的例子:

const SearchCharity = () => {
  const [isLoading, setIsLoading] = useState(true)
  const [themes, setThemes] = useState([])

  useEffect(() => {
    const fetchThemes = async () => {
      try {
        setIsLoading(true)

        const result = await axios.get(url)
        setThemes(result.data.themes.theme)

        setIsLoading(false)
      } catch (err) {
        console.log(err)
      }
    }
    fetchThemes()
  }, [])

  return (
      {
        isLoading ? <h1>Loading......</h1> : <h1>Display Content</h1>
      }
    )

export default SearchCharity

另一件事,如果我们在上面的代码中最初将它设置为 truefalseuseEffect 仍然运行相同并且屏幕上的结果也将相同。那么,为什么 true?这是某种标准吗?

最佳答案

初始化状态时传递的值由您决定。

如果您希望它被初始化为 true,您可以像这样传递 true。

const [isLoading, setIsLoading] = useState(true)

如果你想你也可以传递false,它会被初始化为false

const [isLoading, setIsLoading] = useState(false)

关于javascript - 为什么在使用 useState 时初始加载状态设置为 true?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62920277/

相关文章:

reactjs - 使用输入类型文本对 useState 和日期使用react

reactjs - 从父组件中执行子组件中的功能

javascript - redux-saga takeEvery 仅在单击 btn 时调用,componentDidMount 不会正确调用操作

javascript - Ajax调用问题

javascript - Function.prototype 不会在控制台中显示所有内置属性和方法

javascript - 当我不知道它们的位置时,如何从 JavaScript 中的较大字符串中删除一些字符串

javascript - 在 React 中删除集合项 - map 与 for 循环

reactjs - React Hook 形式 - 填充选择多个选项数组

javascript - Jquery 显示更多,显示更少按钮有任何其他想法

javascript - Vue - 通过路由器将 Prop 传递给组件