Javascript 有人能解释一下如何确定我的父文件以解除状态吗?
我正试图提升一个州,这样我可以在一些页面上使用它,我正在努力找出我应该在哪里引用这些州,因为我不清楚我的父母会在哪里。这是我第一次设计应用程序,所以我的文件目录可能没有按应有的方式组织!我已经附上了我的文件目录的图片作为我的app.js的代码,所以你可以看到为什么我不在那里引用它们。或者我可以 最好的办法是什么?任何洞察都比你所知道的要难得多!多谢各位 我正在尝试从SignUpEmail页面获取输入,更新其状态,并将其发送到我的CreatePassword页面 我觉得我没有尽力解释自己!有关更多内容,请访问我的上一篇帖子-> app.jsJavascript 有人能解释一下如何确定我的父文件以解除状态吗?,javascript,reactjs,react-native,react-context,Javascript,Reactjs,React Native,React Context,我正试图提升一个州,这样我可以在一些页面上使用它,我正在努力找出我应该在哪里引用这些州,因为我不清楚我的父母会在哪里。这是我第一次设计应用程序,所以我的文件目录可能没有按应有的方式组织!我已经附上了我的文件目录的图片作为我的app.js的代码,所以你可以看到为什么我不在那里引用它们。或者我可以 最好的办法是什么?任何洞察都比你所知道的要难得多!多谢各位 我正在尝试从SignUpEmail页面获取输入,更新其状态,并将其发送到我的CreatePassword页面 我觉得我没有尽力解释自己!有关更多
export default class App extends Component {
createHomeStack = () =>
<NavigationContainer>
<Stack.Navigator>
<Stack.Screen name="SplashScreen" component= {SplashScreenPage} options={{headerShown: false}}/>
<Stack.Screen name="Welcome" component= {WelcomePage} options={{headerShown: false}}/>
<Stack.Screen name="Login" component= {LoginPage} options={{headerShown: false}}/>
<Stack.Screen name="SignUpEmail" component= {SignUpEmailPage} options={{headerShown: false}}/>
<Stack.Screen name="CreatePassword" component= {CreatePasswordPage} options={{headerShown: false}}/>
<Stack.Screen name="PhoneVerification" component= {PhoneVerificationPage} options={{headerShown: false}}/>
<Stack.Screen name="Home" component= {HomePage} options={{headerShown: false}}/>
<Stack.Screen name="YourName" component= {YourNamePage} options={{headerShown: false}}/>
<Stack.Screen name="ProfilePicUpload" component= {ProfilePicUploadPage} options={{headerShown: false}}/>
<Stack.Screen name="LikedPage" component= {LikedPage} options={{headerShown: false}}/>
</Stack.Navigator>
</NavigationContainer>
render() {
return (
<View style={styles.welcomeScreen}>
{this.createHomeStack()}
</View>
)
}
}
导出默认类应用程序扩展组件{
createHomeStack=()=>
render(){
返回(
{this.createHomeStack()}
)
}
}
通常在提升状态时,您会在React虚拟DOM树中选择与所有需要访问“共享状态”的组件最近的公共祖先。您的实际文件结构与此无关 从您的代码片段
App
来看,似乎是SignUpEmailPage
和CreatePasswordPage
组件的共同祖先,因为它同时呈现这两个组件,尽管您决定如何传递“公共”状态并回调以更新它是另一个练习
您可以在
App
中使用本地组件状态,创建上下文提供程序并包装公共祖先(每个组件都可以订阅上下文),也可以使用redux之类的工具进行全面的应用程序状态管理。这取决于您共享的公共状态需要。文件结构无关紧要,JSX将组件作为子组件;只需通过状态和方法来更改它,谢谢!因此,我希望在整个应用程序中多次引用此状态。我想我应该用redux?或者这是一种过分的选择?如果我应该使用在应用程序中使用本地组件状态的更简单版本,您能给我指出一些可以详细说明的地方吗?不确定如何创建上下文提供程序,我可以解决它,但您可以为我节省一些时间!再次感谢您的洞察力@贾斯汀·普里德说实话,我经常引用官方的react文档:它们都很好,并且有有用的例子。是一个建立在上下文API之上的抽象,但是有一个更陡峭的学习曲线和更多的活动部分。我认为,对于只存储一些状态以从一个页面传递到另一个页面,我建议使用“提升状态”方法,因为这对您来说可能是最自然的。当你的需求扩大时,你可以查看其他的。注意!感谢您的所有时间:)@JustinPriede哦,如果您想尝试redux,请尝试一下“在整个应用程序中使用了相当多的时间”。那我就退房。这是对redux(和react-redux)的另一种抽象,它试图处理redux的样板性。Redux很棒,所以请不要让我对它的评论吓跑你,我只是希望人们做好准备。