Nikulio
@Nikulio
NaN !== NaN

Почему AC не вызывает reducer?

Что-то не выходит вызвать reducer. Он постоянно возвращает default. Код :
AC :
import {INPUT_IDEA_HANDLE} from "./types"

export function inputIdeaHandle(idea) {
  console.log('тут еще работает, то есть экн срабатывает и записывает данных в idea');
  return {
    type: INPUT_IDEA_HANDLE,
    payload: idea
  }
}


Reducer :
index.js

import { combineReducers } from "redux";
import inputIdeaReducer from "./inputIdeaReducer.js"

export default combineReducers({
  inputIdea: inputIdeaReducer
});

inputIdeaReducer :
import {INPUT_IDEA_HANDLE} from "../actions/types"

export default function (state = null, action) {
  switch (action.type) {
    case INPUT_IDEA_HANDLE :
      console.log('тут уже нет. возвращает default и хоть ты тресни');
      return action.payload;
    default:
      console.log(2);
      return state
  }
}
  • Вопрос задан
  • 267 просмотров
Решения вопроса 1
rockon404
@rockon404 Куратор тега React
Frontend Developer
Nikita Shchypylov, у тебя в коде точно что-то не правильно. Ты его сам писал или что-то копировал?
Не хватает полных примеров кода, чтобы понять в чем причина.
Вот что точно надо поменять:
1. inputIdeaHandle надо передать в компонент через декоратор connect:
import { connect } from 'react-redux';
import { inputIdeaHandle } from '../actions';

const mapDispatchToProps = {
  inputIdeaHandle,
};

export default connect(null, mapDispatchToProps)(Dashboard);

2. changeHandle должен быть inlineFunction:
changeHandle = e => {
  const { value } = e.target;
  this.props.inputIdeaHandle(value);
};
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
22 нояб. 2024, в 03:54
1500 руб./за проект
22 нояб. 2024, в 02:56
10000 руб./за проект
22 нояб. 2024, в 00:55
500 руб./за проект