我在Stackover flow中看到过这样的问题,但似乎没有一个能解决我的问题。我试图使用redux thunk分派一个操作,但不幸的是,我的thunk函数没有触发return语句。
我试着像往常一样使用redux thunk:
export function handleLikeThunk(id, likeType){
console.log('thunk1')
return (dispatch) => {
console.log('thunk2', id);
}
}然而,代码只到达'thunk1‘消息。它从不显示'thunk2‘
我正在尝试处理一个like按钮,所以首先我导入了redux thunk函数:
import { handleLikeThunk } from '../redux/actions/posts';我有一个函数,每当按下like按钮时都会调用thunk:
handleLike = (e) => {
const { likes, id } = this.state
if(e.target.getAttribute('name') === 'upVote'){
this.setState((perviouState)=>({
likes: perviouState.likes + 1
}));
handleLikeThunk(id, 'upVote');
}
if(e.target.getAttribute('name') === 'downVote' && likes > 0){
this.setState((perviouState)=>({
likes: perviouState.likes - 1
}));
handleLikeThunk(id, 'downVote');
}
}为此,我将我的组件连接到存储区
const mapDispatchToProps = (dispatch) => {
return {
handleLikeThunk: (id, likeType) => dispatch(handleLikeThunk(id,
likeType))
}
}
export default connect(null, mapDispatchToProps)(Post)正如我所说的,我希望能够使用thunk函数在后端发布此信息,但它永远不会进入thunk函数内部的返回状态。
发布于 2019-01-04 00:36:52
看起来您调用的是原始函数,而不是放在mapDispatchToProps中的函数,请尝试将handleLikeThunk(id, 'upVote');更改为this.props.handleLikeThunk(id, 'upVote');
https://stackoverflow.com/questions/54026160
复制相似问题