[英]React Hooks - Updating state using props without event handlers
我對 React 比較陌生,這就是我想要完成的:
graph
數組。 還有比這更好的方法嗎? PS 我將在這個組件中擁有超過 1 倍的useEffect
。
App.js
- Sidebar
- Title-bar
- Graphs
function Graphs(props) {
const [graphs, addGraphs] = useState([]);
useEffect(() => {
if (props.graphID) {
addGraphs(graphs.concat(props.graphID));
}
}, [props.graphID]);
return (
<div>{graphs}</div>
);
}
謝謝!
我相信這是一個好方法,但您應該使用功能性 state 更新。 React.useState
鈎子的“setter”函數與之前的 state 有一個回調,所以你應該像這樣更新它:
import React from "react";
function MyComponent({id}) {
const [list, setList] = React.useState([]);
React.useEffect(() => {
if (id) {
setList(previousState => {
return [
...previousState,
id
];
});
}
}, [id]);
return (
<div>
{
list.map((_id, index) => {
<p key={index}>
{_id.toString()}
</p>
)
}
</div>
);
}
像喬納森那樣發送道具沒有任何問題。
如果您正在尋找其他 state 管理選項,您可以查看本機 React useContext , useReducer掛鈎來創建您自己的系統。 否則有像Redux Saga這樣的框架,最近Recoil值得一試。
如果您只是想 select 一個 ID 並將其發送到另一個組件,那么使用props
或useContext
可能是您最好的選擇。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.