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