I am a beginner in react native and recently, I encountered an infinite loop when I put a function in onPress property directly. in some cases, direct function call works, but in this case, I have to use an anonymous function. What exactly is happening when I use an anonymous function? Why does it not cause an infinite loop?
export default function App()
{
const [state, setState] = useState({
searchQuery: "",
active: false,
data: []
});
function setSearchQuery(val) {
setState({...state, searchQuery: val});
}
function setActive(val) {
setState({...state, active: val});
}
function setData(val) {
setState({...state, data: val});
}
function keyboardDissmiss() {
setState({...state, active: false});
Keyboard.dismiss();
}
return (
<TouchableWithoutFeedback onPress={keyboardDissmiss}>
<SafeAreaView style={GlobalStyles.droidSafeArea}>
<View style={{height: 50,alignItems: 'center', backgroundColor: "blue"}}>
<Text>{state.searchQuery}</Text>
</View>
<View style={{flex:1}}></View>
<NavBar state={state.active} style={styles.container} onPress={() => setActive(true)}>
{state.active &&
<SearchBar
value={state.searchQuery}
onBlur={() => setActive(false)}
search={setSearchQuery}
/>}
</NavBar>
</SafeAreaView>
</TouchableWithoutFeedback>
);
}