我试图QResults.js通过调用我传递给它的函数来从子组件()更新我的 redux 状态,但是当我使用该函数时我的减速器没有被到达。QResults.js有一个我正在点击的链接,我希望通过我的一个减速器来改变我的状态。我的 mapDispatchToProps() 函数做错了吗?频道.jsclass Channel extends Component { ... render() { return ( ... <div> <QResults allQueryResults={this.state.queryState} requestHandler={queueNewRequest}/> </div> ); }}function mapStateToProps(state) { ...} function mapDispatchToProps(dispatch) { return ({ queueNewRequest: (newRequestData) => { dispatch(queueNewRequest(newRequestData)) } })} export default withRouter(connect(mapStateToProps , mapDispatchToProps )(Channel))QResults.jsexport default class QResults extends Component { render() { const {requestHandler} = this.props return ( <ul> {this.props.allQueryResults.items.map((trackAlbum, i) => <li key={i}> <a href='#' onClick={ () => requestHandler(trackAlbum.name)}> Some link </a> </li> )} </ul> ) }}
1 回答
桃花长相依
TA贡献1860条经验 获得超8个赞
您的操作不会将操作分派给减速器。你只是将它作为参数传入。我还将参数的传递稍微更新为一个名为“payload”的键。尝试像这样更新它
我在这里创建了一个最小的沙箱
如果您单击其中一项并检查您的控制台,您可以看到正在调用减速器。
export const QUEUE_NEW_REQUEST = "QUEUE_NEW_REQUEST";
export function queueNewRequest(newRequestInfo) {
return dispatch =>
dispatch({
type: QUEUE_NEW_REQUEST,
payload: newRequestInfo
});
}
添加回答
举报
0/150
提交
取消