我不确切知道如何解决这个问题,而我的研究正在发现相互矛盾/混乱的信息。我使用react,redux,saga和react-router。
我基本上有一个主/细节场景。我向用户显示一个故事列表,当他们点击一个故事时,它会加载一个详细信息组件,其中包含从状态中读取的详细信息。但是,如果用户知道详细ID,我希望用户能够深入链接到详细信息页面。 http://localhost:3000/story/1496620859347。
我正在调度在组件构造函数中触发的操作,但映射到组件props的状态永远不会更改。我究竟做错了什么? (我已经添加了一些组件代码,但我不确定它是否相关。)
import React, { Component } from 'react';
import { connect } from 'react-redux';
import './FullStory.css';
import he from 'he';
import { downloadSelectedStoryByID } from '../store/actions/selected_story';
const mapStateToProps = (state) => {
return {
story: state.selected_story
}
}
const mapDispatchToProps = dispatch => {
return {
getStoryByID(id) {
dispatch(downloadSelectedStoryByID(id));
}
}
}
class FullStory extends Component {
constructor(props) {
super(props)
if (props.story.id == undefined) {
this.props.getStoryByID(props.match.params.id);
}
}
render() {
return (
)
减速
从' ../../常数';
导入cexport const selected_story = (state={}, action) => {
switch(action.type) {
case c.DOWNLOAD_STORY_BY_ID_SUCCEEDED:
return action.payload;
case c.SET_SELECTED_STORY:
return action.payload;
default:
return state;
}
}
我放入了减速机。