Redux令人头疼...至少对我来说,是!!!有人可以向我解释如何将通过mapDispatchToProps获取的json [0]传递给动作创建者吗?我做对了吗?我正在使用redux-thunk,这是使用它的正确方法吗?
state = {
articles: {
article: []
}
};
qrCodeOnReadHandler = ({ data }) => {
this.props.onQRRead();
console.log(this.props.art);
fetch(data)
.then(response => response.json())
.then(json => {
console.log(json),
// () => this.props.onQRRead(json[0]),
this.setState({
...this.state,
articles: {
...this.state.articles,
article: json[0]
}
});
});
};
连接redux
const mapStateToProps = state => {
return {
art: state.articles.article
};
};
const mapDispatchToProps = dispatch => {
return {
onQRRead: () => dispatch(article())
};
};
动作创建者
export const fetchedArticle = res => {
return {
type: ARTICLE,
res: res
};
};
export const article = res => {
return dispatch => {
dispatch(fetchedArticle(res));
};
};
答案 0 :(得分:1)
我如何通过mapDispatchToProps将获取的json [0]传递给我 动作创建者
您必须让onQRRead
收到这样的参数:
const mapDispatchToProps = dispatch => {
return {
onQRRead: payload => dispatch(article(payload))
};
};
函数参数的名称是任意的。
现在,您可以像以前一样使用它:
this.props.onQRRead(json[0])