ホームページ  >  に質問  >  本文

ReactJS コンポーネントのプロパティ値を別のコンポーネントに渡すことができません

<p>Home.js コンポーネントの Navbar.js コンポーネントの寸法オブジェクトの最新の更新値を取得するにはどうすればよいですか? Home.js から Navbar.js にコールバック関数を小道具として渡そうとしましたが (Home.js は Navbar.js の親コンポーネントであるため)、新しく更新されたディメンションの状態値を Navbar.js に保存できません。 useEffect の依存関係としてディメンションの状態を渡すと、無限ループが発生します。私を助けてください。 </p> <pre class="brush:php;toolbar:false;">**Home.js コンポーネント** const ホーム = () => { const [heightNav, setHeightNav] = useState(0); useEffect(() => { console.log(身長ナビ); }, [身長ナビ]); 戻る ( <div> <ナビゲーションバー setHeight={(h) => { setHeightNav(() => h); }} /> </div> ); }; **Navbar.js コンポーネント** const Navbar = ({ setHeight }) => { const refContainer = useRef(); const [dimensions, setDimensions] = useState({ width: 0, height: 0 }); useEffect(() => { if (refContainer.current) { setDimensions(() => { 戻る { 幅: refContainer.current.offsetWidth、 高さ: refContainer.current.offsetHeight、 }; }); setHeight(dimensions.height); } }、[]); 戻る ( <コンテナ ref={refContainer}> </コンテナ> ); };</pre>
P粉647504283P粉647504283403日前467

全員に返信(1)返信します

  • P粉420958692

    P粉4209586922023-08-16 22:15:16

    このナビゲーション バーを試してください:

    リーリー

    返事
    0
  • キャンセル返事