Nikulio
@Nikulio
NaN !== NaN

Почему не могу оперировать со стандартными пропсами из store'a?

Добавил такой стейт в комбайн :

export default combineReducers({
  userIdea: inputIdeaReducer, //работает
  ideas: renderIdeas, //работает
  isInputActive: false //не работает
});


в компоненте :

function mapStateToProps(state) {
  return {
    userIdea: state.userIdea,
    ideas: state.ideas,
    isInputActive: state.isInputActive
  };
}
export default connect(mapStateToProps, mapDispatchToProps)(Dashboard);


и использование в том же компоненте :

<input
              type="text"
              onChange={this.inputChangeHandle}
              placeholder="Type some text"
              // value={this.props.userIdea}
            />

  inputChangeHandle = e => {
    let value = e.target.value;
    console.log(this.props.isInputActive);
  };


Выдаёт undefined. Почему?
Хочу менять стейт на тру/фолс в записимости от текста в инпуте
  • Вопрос задан
  • 89 просмотров
Решения вопроса 1
rockon404
@rockon404 Куратор тега React
Frontend Developer
combineReducers принимает на вход объект с функциями вида:
(state: S, action: A) => S
а вы передаете boolean.

Создайте для isInputActive функцию reducer, что-то вроде
const isInputActiveReducer = (state = false, action) => {
  const { payload, type } = action;

  switch(type) {
    case TOGGLE_INPUT:
      return payload;
  default:
      return state;
  }
}


Но вообще передавать состояние input в store плохая идея. Для этого с лихвой хватит state компонента.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы