State Lifting
4643 ワード
reactは双方向ではなく一方向です.
親構成部品または兄弟構成部品は、1つの構成部品では使用できません.
したがって、2つの兄弟構成部品で機能を同時に使用する場合は、親構成部品にコードを記述し、propsを使用して各サブ構成部品で使用する必要があります.
サブ1では、2つの2つの関数が新しく作成され、使用されます.
親構成部品または兄弟構成部品は、1つの構成部品では使用できません.
したがって、2つの兄弟構成部品で機能を同時に使用する場合は、親構成部品にコードを記述し、propsを使用して各サブ構成部品で使用する必要があります.
// 부모컴포넌트 //
import { useState } from "react";
import Child1 from "./child1";
import Child2 from "./child2";
export default function LiftingStateUpPage() {
const [count, setCount] = useState(0);
const onClickCountUp = () => {
setCount((prev) => prev + 1);
};
return (
<div>
<Child1 count={count} setCount={setCount} />
<div>-------------------------------</div>
<Child2 count={count} onClickCountUp={onClickCountUp} />
</div>
);
}
// 자식 컴포넌트1 //
export default function Child1(props) {
const onClickCountUp2 = () => {
props.setCount((prev) => prev + 2);
};
return (
<div>
<div>Child1 Count : {props.count}</div>
<button onClick={onClickCountUp2}>count up</button>
</div>
);
}
// 자식컴포넌트2 //
export default function Child2(props) {
return (
<div>
<div>Child2 Count : {props.count}</div>
<button onClick={props.onClickCountUp}>count up</button>
</div>
);
}
子供2では、親のそれぞれが上昇する機能(propsを使用)を使用しています.サブ1では、2つの2つの関数が新しく作成され、使用されます.
Reference
この問題について(State Lifting), 我々は、より多くの情報をここで見つけました https://velog.io/@ssjjyy/State-Liftingテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol