Nikulio
@Nikulio
NaN !== NaN

Почему нужно тут использовать payload.value вместо payload?

Всем привет

Есть такое поле :
Name : <input type="text" value={user} onChange={this.handleUserChange}/>

Вот обработчик :
handleUserChange = (ev) => {
		if (ev.target.value.length > 10) return;
		const {changeUser} = this.props;
		changeUser(ev.target.value);
	};


action :

export function changeUser(value) {
	return {
		type: CHANGE_USER,
		payload: {value}
	}
}

и reduce'ер :
import {CHANGE_USER} from '../constants';


export default (user = 0, action) => {
	const {type, payload} = action;

	switch (type) {
		case CHANGE_USER :
			return user = payload.value
	}
	return user
}


Получается, если я пишу в редюсере просто payload, то в инпут при изменении получаю [object Object], а если стучусь к value, то в порядке.
Это нормально поведение? Или я уже костыли налепил?
  • Вопрос задан
  • 250 просмотров
Решения вопроса 2
@davidnum95
Так вы же в payload записываете объект с полем value:
payload: {value}
Ответ написан
Комментировать
alexey-m-ukolov
@alexey-m-ukolov Куратор тега React
payload: {value} // payload: {value: 'foo'}
vs
payload: value // payload: 'foo'

Новая нотация в ECMAScript 2015
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы