javascript - 如何在钩子中传递对象参数?
问题描述
如下所示,我将参数列表传递给 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
如何解决?谢谢
解决方案
推荐阅读
- ruby - 解析器过滤器插件不起作用 Td-agent [Fluentd]
- ios - 存储 UICollectionViewCell 状态
- c# - 在标记范围和未标记范围内解析组件
- scala - 在使用 Semigroupal 的某些 monad 中,我们仍然会失去上下文吗?
- ruby - 我应该如何在 Ruby 中继承变量?
- sql-server - 使用 DDNS 和端口转发的 Google Apps 脚本 JDBC(特别是 sqlserver)连接问题
- java - 从 servlet 中的单选按钮值获取 null
- r - R语言中两个矩阵相乘的错误
- php - 如何在变体形式下拉列表中显示产品变体图像?
- python - 如何在标头中传递基本身份验证 base 64 密钥