Reactjs 我应该传递道具还是使用Redux
因此,我有一个路由器组件,它位于我的应用程序屏幕的顶部。此组件中有一个菜单按钮,当加载某些其他页面/组件时,该按钮可见 单击此菜单按钮时,我需要将此信息传达给当前显示页面的组件,以便它可以显示上下文菜单 上下文菜单和菜单按钮都独立工作。然而,我对如何连接它感到困惑。如何有效地在这两个组件之间传递真/假切换?我以为我可以用道具来做,但是我觉得道具通过后你就不能更新了。这让我想到,我可能需要实现一个存储,这两个组件都可以读/写。这样,路由器组件将在每次单击菜单按钮时更新存储,而另一个组件可以根据存储的状态更新其状态,我可以使用该状态切换菜单可见/隐藏 这有意义吗?如果有,最好的解决方法是什么 路由器代码:-父级,Reactjs 我应该传递道具还是使用Redux,reactjs,react-native,redux,react-redux,Reactjs,React Native,Redux,React Redux,因此,我有一个路由器组件,它位于我的应用程序屏幕的顶部。此组件中有一个菜单按钮,当加载某些其他页面/组件时,该按钮可见 单击此菜单按钮时,我需要将此信息传达给当前显示页面的组件,以便它可以显示上下文菜单 上下文菜单和菜单按钮都独立工作。然而,我对如何连接它感到困惑。如何有效地在这两个组件之间传递真/假切换?我以为我可以用道具来做,但是我觉得道具通过后你就不能更新了。这让我想到,我可能需要实现一个存储,这两个组件都可以读/写。这样,路由器组件将在每次单击菜单按钮时更新存储,而另一个组件可以根据存储
menu()
单击菜单按钮时激发
const RouterRecipeComponent = () => {
function menu() {
console.log('clicky');
}
const MenuIcon =
(<TouchableOpacity
onPress={() => menu()}
style={{ backgroundColor: 'red', width: 30, height: 30 }}
>
<Text>MENU</Text>
</TouchableOpacity>);
return (
<Router
sceneStyle={styles.sceneStyleWithSettings}
navigationBarStyle={styles.navBar}
titleStyle={styles.navBarTitle}
barButtonIconStyle={styles.barButtonIconStyle}
>
<Scene
key="Recipes"
component={Recipes}
title={content.recipe_heading}
rightTitle="Menu" initial
renderRightButton={() => MenuIcon}
/>
你能把你的密码寄出去吗?是的,你不应该改变道具,但如果它是路由器,它是一个创建组件,所以在这一点上你可以设置道具。一般来说,使用Redux之类的工具确实更好。但是不管怎样,如果没有看到代码,就很难说出来。代码补充道,谢谢你,你的redux/商店代码在哪里。你的想法是正确的。通过这种方式,您可以将状态作为应用程序状态共享。我还没有实现任何redux-我的问题是,对于这个应用程序,我是否需要一个flux系统,或者我是否可以使用更简单的方法来实现它。
renderSettingsPanel() {
LayoutAnimation.configureNext(LayoutAnimation.Presets.spring);
if (this.state.settingsPanel === true) {
return (
<View style={styles.settingsPanel}>
{this.theSettings()}
</View>
);
}
return (
<View style={[styles.settingsPanel, { top: -80, position: 'absolute', opacity: 10 }]}>
{this.theSettings()}
</View>
);
}