Redux Thunk не запускает возврат - PullRequest
0 голосов
/ 03 января 2019

Я видел подобные проблемы в потоке Stackover, но ни одна из них, похоже, не решила мою проблему.Я пытаюсь выполнить действие, используя избыточный thunk, но, к сожалению, моя функция thunk не запускает оператор return.

Я пытался использовать избыточный thunk, как обычно:

export function handleLikeThunk(id, likeType){
  console.log('thunk1')
  return (dispatch) => {
    console.log('thunk2', id);

  }
}

Однако код достигает только сообщения «thunk1».Он никогда не отображает «thunk2»

Я пытаюсь обработать кнопку «Мне нравится», поэтому сначала я импортировал функцию избыточного thunk:

import { handleLikeThunk } from '../redux/actions/posts';

У меня есть функция, которая вызывает 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.

1 Ответ

0 голосов
/ 03 января 2019

Похоже, что вы вызываете необработанную функцию, а не ту, которую вы вставили в mapDispatchToProps, попробуйте изменить handleLikeThunk(id, 'upVote'); на this.props.handleLikeThunk(id, 'upVote');

...