Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 有人能解释一下如何确定我的父文件以解除状态吗?_Javascript_Reactjs_React Native_React Context - Fatal编程技术网

Javascript 有人能解释一下如何确定我的父文件以解除状态吗?

Javascript 有人能解释一下如何确定我的父文件以解除状态吗?,javascript,reactjs,react-native,react-context,Javascript,Reactjs,React Native,React Context,我正试图提升一个州,这样我可以在一些页面上使用它,我正在努力找出我应该在哪里引用这些州,因为我不清楚我的父母会在哪里。这是我第一次设计应用程序,所以我的文件目录可能没有按应有的方式组织!我已经附上了我的文件目录的图片作为我的app.js的代码,所以你可以看到为什么我不在那里引用它们。或者我可以 最好的办法是什么?任何洞察都比你所知道的要难得多!多谢各位 我正在尝试从SignUpEmail页面获取输入,更新其状态,并将其发送到我的CreatePassword页面 我觉得我没有尽力解释自己!有关更多

我正试图提升一个州,这样我可以在一些页面上使用它,我正在努力找出我应该在哪里引用这些州,因为我不清楚我的父母会在哪里。这是我第一次设计应用程序,所以我的文件目录可能没有按应有的方式组织!我已经附上了我的文件目录的图片作为我的app.js的代码,所以你可以看到为什么我不在那里引用它们。或者我可以

最好的办法是什么?任何洞察都比你所知道的要难得多!多谢各位

我正在尝试从SignUpEmail页面获取输入,更新其状态,并将其发送到我的CreatePassword页面

我觉得我没有尽力解释自己!有关更多内容,请访问我的上一篇帖子->

app.js

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很棒,所以请不要让我对它的评论吓跑你,我只是希望人们做好准备。