首页 > 解决方案 > 如何在钩子中传递对象参数?

问题描述

如下所示,我将参数列表传递给 useFunction;在使用GetName函数中,出于某种原因,我需要将控制参数“data”作为“item”。原来是循环更新。</p>

import React, { useState, useEffect } from "react";

function App() {
  const [filter, setFilter] = useState([]);

  useEffect(() => {
    const id = setTimeout(() => {
      setFilter([{ value: "" }]);
    }, 1000);
    return () => {
      clearTimeout(id);
    };
  }, []);

  const list = [
    {
      name: "a",
      value: filter
    }
  ];

  return <div>{useGetName(list)}</div>;
}

function useGetName(data) {
  const [item, setItem] = useState(data);

   useEffect(() => {
    // for some reason, I need control params "data" as "item"
    console.log("data", data);
    setItem(data);
  }, [data]);

  return (
    <div
      onClick={() => {
        console.log("item", item);
      }}
    >
      click me
    </div>
  );
}

export default App;

我这样固定的方式:


  useEffect(() => {
    console.log("data", data);
    setItem(data);
  }, [JSON.stringify(data)]);  // JSON.stringify


如何解决?谢谢

标签: javascriptreactjsreact-hooks

解决方案


推荐阅读