Javascript 组件在redux存储更改时未重新提交
我真的很挣扎,但我不能让我的组件重新上市,即使我可以看到商店正在改变,是的,我不确定我没有改变我的原始状态 减速器:Javascript 组件在redux存储更改时未重新提交,javascript,reactjs,redux,Javascript,Reactjs,Redux,我真的很挣扎,但我不能让我的组件重新上市,即使我可以看到商店正在改变,是的,我不确定我没有改变我的原始状态 减速器: const AssessmentReducer = (state = initialState, action) => { switch (action.type) { case GET_ASSESSMENT_INFO: return { ...state, assessment: action.payload } default:
const AssessmentReducer = (state = initialState, action) => {
switch (action.type) {
case GET_ASSESSMENT_INFO:
return { ...state, assessment: action.payload }
default:
return state
}
}
行动:
import { GET_ASSESSMENT_INFO } from '../reducers/AssessmentReducer'
import API from '../../api'
export function getAssessment(assessment) {
return {
type: GET_ASSESSMENT_INFO,
payload: assessment,
}
}
export function getAssesmentInfo(id) {
return function (dispatch) {
return API.get_all('assessments/' + id).then(
(response) => dispatch(getAssessment(response)),
(error) => console.log('An error occurred', error)
)
}
}
组成部分:
componentDidMount() {
const assessmentId = this.props.match.params.assessment_id
this.props.getAssesmentInfo(assessmentId)
}
/** A whole bunch of stuff in here ***/
render() {
console.log(this.props.assessment)
}
function mapStateToProps(state) {
return {
//screenQuestions: state.ScreenQuestionsReducer.screenQuestions,
assessment: state.AssessmentReducer.assessment,
}
}
export default connect(mapStateToProps, { getAssesmentInfo })(
withStyles(styles)(AssessmentTabs)
)
我看到我的初始状态被记录在渲染中,我可以验证是否调用了该操作并将其发送给具有正确负载的减速器。但是渲染中的控制台日志不会再次命中。使用redux开发工具,状态也得到了正确更新
有什么想法吗
编辑:
只要在我的组件中单击一个按钮并更新状态,它就会在redux的新道具中读取“没问题”您的组件中有shoulldComponentUpdate()吗?不,我不需要,我认为我不需要它,默认为true,应该允许无论如何更新。从不调用ComponentDidUpdateeither@Kierchon您的redux是否使用react-thunk或react-saga来处理异步操作?@VoQuocThang是的,它的用法是thunks@Kierchon问题中的代码看起来不错,但显然不是全部,因此如果没有随机猜测,就不可能回答问题。我的建议是签出repo中的一个测试分支,并用最小的组件替换该组件(挂载时分派并显示redux状态)。然后添加一些东西,比如用样式等等,看看它什么时候会断裂。