reactjs - 做一个通用的函数来存储本地存储数据
问题描述
我是 react-native 的新手。我有一个如下的文件夹结构:
-screens
-page1.js
-page2.js
-page3.js
-page4.js
-App.js
在 page1.js 中,我有一个将数据存储到 localStorage 的功能
let obj = {
name: 'John Doe',
email: 'test@email.com',
city: 'Singapore'
}
AsyncStorage.setItem('user', JSON.stringify(obj));
现在我必须在其他几个页面中显示这些数据。这是我的代码。
class Page2 extends Component {
state = {
username: false
};
async componentDidMount() {
const usernameGet = await AsyncStorage.getItem('user');
let parsed = JSON.parse(usernameGet);
if (parsed) {
this.setState({
username: parsed.name,
email: parsed.email
});
} else {
this.setState({
username: false,
email: false
});
}
}
render() {
return (
<View style={styles.container}>
<Text style={styles.saved}>
{this.state.username}
</Text>
</View>
);
}
}
export default Page2;
这就是我在 page2 中显示数据的方式。我可能也需要在其他页面中显示这些。我不想在每一页中重复这些代码。
有什么建议如何在 react-native 中做到这一点?
解决方案
您可以将需要显示的数据提取到它自己的组件中,并在需要显示它的任何页面中重新使用它。
另一种选择是使用高阶组件,这样您就可以将它包装在任何需要数据的组件周围,并将其作为道具传递下去。
推荐阅读
- moqui - 加载没有演示数据的 Moqui
- ruby - 测试两个哈希是否相等的大 O 复杂度是多少?
- ios - items' 产生 '(Source) -> Disposable',而不是 UICollectionLayout 的预期上下文结果类型 '(_) -> _' 错误
- javascript - 放入脚本标签时不会显示 Javascript 数组和 var
- c++ - c ++:[错误]'map'之前的预期初始化程序
- pandas - 对堆积条形图进行排序
- excel - Excel,递归添加分数,然后在 1 处重置为零
- keras - keras 预处理逻辑
- ios - 在 Swift 中使用 switch 语句来改变视图控制器
- python - 我的 python/sklearn/SVM 无休止地运行