Reactjs 在React/React Native中获得道具的最佳方式是什么
我真的很关心React/React Native中的道具。我有一个父视图。在此视图中,我从本地存储获取用户数据。[”Reactjs 在React/React Native中获得道具的最佳方式是什么,reactjs,react-native,Reactjs,React Native,我真的很关心React/React Native中的道具。我有一个父视图。在此视图中,我从本地存储获取用户数据。[” import React, { Component } from 'react'; import { Container, Content, View } from 'native-base'; import NutrionalToolbar from '../../components/NutrionalToolbar'; import { AsyncStorage } fro
import React, { Component } from 'react';
import { Container, Content, View } from 'native-base';
import NutrionalToolbar from '../../components/NutrionalToolbar';
import { AsyncStorage } from 'react-native';
export default class LogsScreen extends Component {
state = {
user: '',
}
componentWillMount() {
this._bootstrapAsync();
}
_bootstrapAsync = async () => {
const user = await AsyncStorage.getItem('user');
this.setState({ user: JSON.parse(user) })
};
render() {
return (
<Container>
<NutrionalToolbar user={this.state.user} />
</Container>
);
}
import React,{Component}来自'React';
从“本机基础”导入{容器、内容、视图};
从“../../components/NutrionalToolbar”导入NutrionalToolbar;
从“react native”导入{AsyncStorage};
导出默认类LogsScreen扩展组件{
状态={
用户:“”,
}
组件willmount(){
这个。_bootstrapAsync();
}
_bootstrapAsync=async()=>{
const user=await AsyncStorage.getItem('user');
this.setState({user:JSON.parse(user)})
};
render(){
返回(
);
}
}
现在在NutrionalToolbar组件中,我有这个
import React, { Component } from 'react';
import { View } from 'native-base';
class NutrionalToolbar extends Component {
constructor(props) {
super(props)
console.log(this.props) // This renders an empty user object
}
render() {
console.log(this.props) // This renders the user object with values
return (
<View>
</View>
);
}
}
export default NutrionalToolbar;
import React,{Component}来自'React';
从“本机基”导入{View};
类扩展组件{
建造师(道具){
超级(道具)
console.log(this.props)//这将呈现一个空的用户对象
}
render(){
console.log(this.props)//这将使用值呈现用户对象
返回(
);
}
}
导出默认工具栏;
如何在构造函数中获取this.props值。我在render方法中获取值。为什么在构造函数中不工作?我建议查看生命周期挂钩,因为即使您可以访问
构造函数中的初始用户prop,您也无法访问对在构造函数中的prop处
import React, { Component } from 'react';
import { View } from 'native-base';
class NutrionalToolbar extends Component {
componentDidUpdate() {
console.log(this.props) // This will always log the current props
}
render() {
return (<View></View>);
}
}
export default NutrionalToolbar;
import React,{Component}来自'React';
从“本机基”导入{View};
类扩展组件{
componentDidUpdate(){
console.log(this.props)//这将始终记录当前的道具
}
render(){
返回();
}
}
导出默认工具栏;
当您的工具栏
实例化时,没有用户
,您仍在获取。为什么在构造函数中需要它?您可以使用其他生命周期挂钩