javascript - 在另一个屏幕上显示更新的变量 React Native
问题描述
我有我的 ScreenOne.js 文件,其中有一个名为 points 的变量,其起始值为 0。文件中还有一些函数将值 10 添加到点。
更新后的 points 变量显示在 ScreenOne 上,并且更新良好。我还想在名为 ScreenTwo.js 的屏幕中显示更新后的 points 变量,但这似乎是个问题。
我已经尝试将更新的值存储在本地存储中,但它返回 null。在这种情况下,我尝试导出更新的变量,但它返回具有起始值而不是更新值的变量。
在 ScreenTwo 中传输和显示更新变量的最佳方式是什么?
屏幕一:
const ScreenOne = ({ navigation }) => {
let valuePoints = 0
module.exports.valuePoints = valuePoints;
if (userInput1.search('No') < 0) {
console.log('Wrong answer!')
} else {
valuePoints += 10
}
if (userInput2.search('Yes') < 0) {
console.log('Wrong answer!')
} else {
valuePoints += 10
}
return (
<ScreenContainer>
<ScrollView style={{ flex: 1, width: '100%' }}>
<PointsAmount>
{valuePoints} //Here it displays 20
</PointsAmount>
</ScrollView>
</ScreenContainer>
)
}
export default ScreenOne;
屏幕二:
const ScreenTwo = ({ }) => {
const {valuePoints} = require('../screens/ScreenOne');
return (
<PointsContainer>
<ScrollView style={{flex:1, width: '100%'}}>
<TouchableOpacity onPress={() => navigation.navigate('MyTabs1')} >
<ScoreCard header='Points gained' points={valuePoints} goal={100} /> //Here it should display 20 but instead it displays 0
</TouchableOpacity>
</ScrollView>
</PointsContainer>
)
}
export default ScreenTwo;
解决方案
您应该查看react 中上下文的文档。
您需要创建一个上下文来包装您的App
.
const [points, setPoints] = useState(0);
<Context.Provider value={{points, setPoints}}>
Your app
</Context.Provider>
然后在你的ScreenOne
和ScreenTwo
你可以获取和设置值:
const {
points, setPoints
} = useContext(Context);
推荐阅读
- angular - 以角度在 history.pushState 中将数据作为状态传递
- c# - 在 c# codebehind- HTML table 上执行 rowspan
- javascript - 在不中断构建时间的情况下从主应用程序测试角度库
- facebook - 同一页面的多个 Facebook 页面 ID
- html - MVC 中的 Ajax.BeginForm 仅适用于 IE
- javascript - React js,将 fetch url 与另一个 fetch 混淆
- system-design - 系统设计/架构 - 搜索引擎 - “以 60 万美元的预算购买新泽西生活石的房屋”?
- reactjs - React 中的 IFrame,zabbix
- arrays - 在函数 SwiftUI 中访问变量
- neo4j - 如何找到与给定节点共享至少 n 个节点的所有节点