reactjs - 如何将 useState 方法传递给组件并且该组件返回状态?
问题描述
我的 Home.js 文件有:
const [location, setLocation] = useState({});
<Search setLocation={{ setLocation }} />
在我的 Search.js 文件中,我有:
const Search = (setLocation) => (
<Container>
<GooglePlacesAutocomplete
placeholder="Onde você esta?"
onPress={(data, details) => {
setLocation(data, details.geometry.location);
}}
some code...
我收到此错误:setLocation 不是函数。setLocation 是对象的一个实例
如何更改位置状态?
解决方案
您将方法发送到对象中的搜索组件的第一件事。所以你得到了这个
error: setLocation is not a function. setLocation is an instance of object
您正在尝试执行嵌套对象 {{setLocation}} onPress GooglePlace。
发送方法作为这样的道具
<Search setLocation={setLocation} />
比你在这样的搜索组件中获得 setLocation 作为对象
{setLocation}
以这种方式更改您的搜索组件
const Search = ({setLocation}) => (
<Container>
<GooglePlacesAutocomplete
placeholder="Onde você esta?"
onPress={(data, details) => {
setLocation(data, details.geometry.location);
}}
/>
</Container>
)
推荐阅读
- eclipse-scout - Javascript图表示例
- python - 一个 url 中有两个 slug,kwargs 和 args
- amazon-dynamodb - 用于存储博客文章的 Amazon SimpleDB 和 DynamoDB
- android - Android对话框不会将文本带到底层片段
- python - 如何输入一个包含多个数字的列表(在终端上直接输入)
- javascript - 可观察对象的发射值取决于其他可观察对象
- javascript - 在 Three.js 中使用 1 个以上的参数和一个带有 datGUI 的滑块
- sql-server - 如何在 SQL Server 中的函数上进行此选择
- python - 具有错误配置的被动连接的 Python ftplib
- react-router - 使用 React Router 4 拦截返回导航?