【发布时间】:2020-10-28 08:03:16
【问题描述】:
这个问题已经被问过了,但我找不到使用钩子的答案。
我需要读取页面中调用组件的状态变量。
MyPage.js
import React from "react"
import MyComponent from "../components/MyComponent"
export default function MyPage() {
console.log("Read stateVariable value here " + stateVariable) // produce error
return (
<MyComponent />
)
}
MyComponent.js
import React, { useState } from "react"
import ExternalModule from "ExternalModule"
export default function MyComponent() {
const [stateVariable, setStateVariable] = useState(0))
return (
<div
onClick={setStateVariable(stateVariable + 1)}
>CLICK HERE
<ExternalModule
stateVariable={stateVariable}
/>
</div>
)
如何在 MyPage 中 console.log stateVariable?
【问题讨论】:
-
你问的是Lifting State Up吗?
-
可能是,如题我在找React-with-hooks的解释,因为不熟悉Class/Constructor/this.state,官方用的文档(您的链接)。 AFAIK 提升状态不是使用反应钩子处理状态管理的常用方法,但我也可能错了
-
提升状态是一种设计模式,反应钩子是一个实现细节。他们彼此没有任何关系。将
const [stateVariable, setStateVariable] = useState(0);移动到MyPage并将stateVariable和setStateVariable作为道具传递给MyComponent以呈现并附加为onClick回调。
标签: reactjs react-hooks state state-management