我是一个新手在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;
这是我在第二页显示数据的方式。我可能需要在其他页也显示这些。我不想在每一页都重复这些代码。
有什么建议如何在react-native中做到这一点?
3条答案
按热度按时间332nm8kg1#
您可以将需要显示的数据提取到它自己的组件中,并在需要显示它的任何页面中重用它。
另一种选择是使用higher-order component,这样你就可以将它 Package 在任何需要数据的组件上,并将它作为一个 prop 传递下去。
xxls0lw82#
你可以把你的
Constant.js
放在你所有常用的实用程序和常量中,在你的应用程序中的任何地方都可以重用。在
Constant.js
中:在任何组件中,都可以导入它并使用,如下所示:
也就是说,你可以创建
Constant
公共文件,并在任何地方重用它们,以避免编写冗余代码。ny6fqffe3#
简化的可重用的本地存储方法