[英]How to access const inside another function in React Native?
我有一个名为home.js
的文件,如下所示:
import React, { useState } from 'react'
import { View, Text, FlatList, Card, TouchableOpacity } from 'react-native'
export const addProject = (flowerbed) => {
flowerbed.key = Math.random().toString()
setFlowerbed((currentFlowerbeds) => {
return [flowerbed, ...currentFlowerbeds]
})
setModalOpen(false)
}
export default function HomeScreen() {
const [flowerbeds, setFlowerbed] = useState(false);
return (
<View style={{ flex: 1, justifyContent: 'center', alignItems: 'center'}}>
<FlatList data={flowerbeds} renderItem={({ item }) => (
<TouchableOpacity >
<Card>
<Text>{ item.title }</Text>
</Card>
</TouchableOpacity>
)} />
</View>
)
}
在函数addProject
我需要调用HomeScreen
内的函数setFlowerbed
,但出现错误:找不到变量: setFlowerbed 。 我不能将函数addProject
放在HomeScreen
因为我需要在另一个文件中访问它:
import { addProject } from './screens/home';
有没有办法解决这个错误? 提前致谢。
您需要传递回调函数以使用您选择的函数,与模态相同
export const addProject = (flowerbed, flowerbedCallback, modalCallback) => {
flowerbed.key = Math.random().toString()
flowerbedCallback((currentFlowerbeds) => {
return [flowerbed, ...currentFlowerbeds]
})
modalCallback(false)
}
/** You need to invoce the method like this,
two parameters: setFlowerbed & setModalOpen, are functions but are not called
so you will can execute inside addProject function */
addProject(flowerbedExample, setFlowerbed, setModalOpen);
如果你将函数作为参数传递,当你调用它时,你是否将方法传递给了他的作用域,因为你传递的是函数的引用,所以当你执行参数回调时你会执行引用
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.