【问题标题】:Why we have same function in onPress react native为什么我们在 onPress 中具有相同的功能 react native
【发布时间】:2021-11-30 07:28:05
【问题描述】:
我正在学习react-native,作为一个初学者,我通过在github上搜索随机项目来学习并找到奇怪和不明白的地方,然后从中学习,今天我看到了一些花花公子的代码(我不记得了他的名字)但它看起来
像这样
{isTrue && (
<TouchableOpacity onPress={reset && reset}> ===>they are the same function
<Text>Reset</Text>
</TouchableOpacity>
)}
为什么我们有这样的东西?为什么不直接用reset,这家伙用&&
请帮帮我,我对此很困惑
【问题讨论】:
标签:
javascript
reactjs
react-native
【解决方案1】:
我希望代码看起来像这样:
<TouchableOpacity onPress={() => {reset && reset()}}>
<Text>Reset</Text>
</TouchableOpacity>
reset && reset() // && shorthand for
if(reset) {
reset()
}
AFAIK 之间没有相关差异
<TouchableOpacity onPress={reset && reset}}>
<Text>Reset</Text>
</TouchableOpacity>
和
<TouchableOpacity onPress={reset}}>
<Text>Reset</Text>
</TouchableOpacity>
reset && reset 将确保当 reset 为 falsy 时 reset 始终未定义。否则 reset 可能为 false、0、''、null 或 NaN。
但我认为这没有任何效果,但符合未定义的 TypeScript 定义 onPress 定义或函数onPress?: () => void;