Reactjs 当网站启动时,React Redux显示未定义

Reactjs 当网站启动时,React Redux显示未定义,reactjs,laravel,redux,axios,Reactjs,Laravel,Redux,Axios,我的react-based网站在我启动网站时显示未定义的道具,但一旦我刷新,道具就会出现,一切都会顺利进行。 我也尝试过改变生命周期方法,但没有成功 我的组件有: constructor(props) { super(props) this.state = { metas: [], url: '', title: '',

我的react-based网站在我启动网站时显示未定义的道具,但一旦我刷新,道具就会出现,一切都会顺利进行。 我也尝试过改变生命周期方法,但没有成功

我的组件有:

constructor(props) {
    super(props)    
    this.state = {
        metas:                 [],
        url:                   '',
        title:                 '',
        description:           '',
        keyword:               '',
        selectedMeta:          '',
        flashMessage:          null,
        newMeta:                ''
    }
}

componentWillMount(){
    this.props.fetchMeta()
    this.setState({
        metas:  this.props.metas
    })
}
const mapStateToProps = state =>({
metas:                      state.admin.metaR,
flashMessage:               state.flash.flashMessage,
newMeta:                    state.admin.newMeta,
updatedMeta:                state.admin.updatedMeta
})

导出默认连接(MapStateTops,{fetchMeta,addMeta,updateMeta})(AdminMeta)

我的行动是:

export const fetchMeta = () => dispatch => {
axios.get('/api/v1/adminMeta')
    .then( res =>res.data )
    .then(metas =>
        dispatch({ type: FETCH_META, payload: metas })
    )
}
我的减速机有:

case FETCH_META:            return { ...state, metaR: action.payload.datax }

我不建议在componentWillMount()中设置初始状态。如果要将初始值应用于状态,请在构造函数中执行此操作。如果您的组件需要执行功能并在装载时对状态应用更改,那么我建议您也在componentDidMount()中执行,但它仍然显示未定义。您是否尝试使用console.logs检查组件的生命周期?它应该看起来像:1。componentWillMount()2。render()3。componentDidMount()