【发布时间】:2021-01-01 16:33:01
【问题描述】:
我有以下数组,其中包含使用React 的对象,该数组显示特定页面中的用户字段数据。
使用useEffect 更新此组件的正确方法是什么,特别是在呈现数据之前加载页面的数组,包括:
要推入数组的新元素
(在页面加载时)
userData.splice(3, 0,
{
key: "gender",
label: "DFR",
},
);
初始数组
const userData = [
{
key: "first_name",
label: "XYZ",
},
{
key: "last_name",
label: "XYYZ",
},
{
key: "username",
label: "ABC",
},
{
key: "age",
label: "ABCC",
},
{
key: "nationality",
label: "EDP",
},
];
我尝试了以下方法,但由于某种原因它不起作用:
useEffect(() => {
userData.splice(3, 0,
{
key: "gender",
label: "DFR",
},
);
}), [];
P.S:如你所见,我不打算使用push。
【问题讨论】:
-
你能解释一下为什么你不想使用
push吗? -
@Ezrab_ 我使用的是
splice,因为我希望数据显示在特定位置,我还需要在页面加载时触发该逻辑 -
我没有完全理解你想要做什么。您想在组件最初呈现之前修改初始数组并使用新值吗?如果是这样,你不能用钩子来做,因为钩子是在组件已经渲染之后运行的。 useEffect 钩子的效果将在初始渲染后呈现。
-
另外,您想要插入到数组中的项目是组件可用的还是从某个地方获取的?
-
@zhulien 没错,你所描述的正是我想要完成的,新项目也在上面的帖子中提到。不是从其他地方获取的。
标签: javascript reactjs algorithm ecmascript-6 react-hooks