【发布时间】:2021-05-03 19:40:04
【问题描述】:
我有两个按钮,它们像这样调用相同的函数:
这个按钮在useEffect中创建。
useEffect(() => {
navigation.setParams({
TopRightButton: (
<ConfirmButton
callback={() => ApiCall()}
/>
),
});
}, []);
这是渲染中的第二个按钮
<TouchableOpacity onPress={()=> ApiCall()}><Text>Add</Text></TouchableOpacity>
这是函数:
const ApiCall = () => {
console.log('name', Name);
};
我用 useState 更改名称。当我单击第二个按钮 TouchableOpacity 时,它会显示我的名字。但是,当我单击在 useEffect 中创建的第一个按钮时,什么也没有发生。我的意思是,名称为空。为什么会这样?
有什么建议吗?
已编辑:
const [Name, setName] = useState('');
【问题讨论】:
-
尝试将您的功能更改为
function ApiCall(){.....}。 -
这行不通@GouravSaini
-
你需要在
useEffect的依赖数组中传递Name/ApiCall。如果需要,请添加return cleanup function。 -
你能告诉我我该怎么做吗? @GouravSaini
-
Name来自哪里?你能展示整个代码吗?
标签: react-native