Reactjs 在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

我真的很关心React/React Native中的道具。我有一个父视图。在此视图中,我从本地存储获取用户数据。[”

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(){
返回();
}
}
导出默认工具栏;

当您的
工具栏
实例化时,没有
用户
,您仍在获取。为什么在构造函数中需要它?您可以使用其他生命周期挂钩