【发布时间】:2019-06-13 03:38:39
【问题描述】:
我正在尝试在 React Hooks 中重写我的一些代码,我想知道,当我在这个示例中传递 searchData 时... 现在可以访问 searchData 和 setSearchData 了吗?我对在 React Hooks 中传递状态的工作方式感到困惑。
import React, { useState, useEffect } from "react";
import SearchBarContainer from "../SearchBar/SearchBarContainer";
import PostContainer from "./PostContainer";
function PostPage(props) {
const [searchData, setSearchData] = useState([...props.data]);
const [addLike, setAddLike] = useState([]);
useEffect(() => {
setAddLike({ addLike: Array(props.data.length).fill(false) });
});
return (
<div>
<SearchBarContainer data={props.data} searchData={searchData} />
<div css={parentPostContainer}>
{searchData.map((dataOnMap, index) => {
return (
<PostContainer
data={dataOnMap}
addLike={addLike[index]}
searchData={searchData}
/>
);
})}
</div>
</div>
);
}
export default PostPage;
【问题讨论】:
-
searchData没有什么特别之处。它只是一种状态。如果你想通过setSearchData你也需要通过它 -
但是当我将 setSearchData 向下传递时,如何使用它作为一个函数,这样我就可以更新父状态或者这是不可能的
-
有可能.. 你直接称它为
props.setSearchData(<put anything here>) -
这是可行的,因为 JavaScript 通过引用传递对象。需要指出的是:如果你传递了
setSearchData,你甚至不需要传递searchData,因为它是作为回调函数参数给出的。
标签: reactjs react-hooks