Задать вопрос
@vaskadogana
Frontend developer

Какая причина ошибки при контроле на input React?

Собственно суть:
если пишу сразу в функции которую вызываю ( как в коде ниже)
this.setState({
value: event.target.value
})
реакт молчит об ошибках.
если делаю, по сути то же самое, но уже в if, то в консоле сообщение типа такого
input_error.jpg
enterToThisState(event){
		this.setState({      
			value: event.target.value
		})
		let empty;
		let value = event.target.value; 
		if (value.length == 0){
			empty = true;
			this.setState({
				error_emty_field: 'formError',
				empty: true,
				
			})	
		} else {
			empty = false;
			this.setState({
				error_emty_field: '',
				empty: false,
				
			})
		}
		this.props.data_from_required({
			empty: empty,
			value: event.target.value, 
			name: event.target.name,
		}, event)
	}

сам инпут
return <input 	
							name = {data.name}
							type = {data.type}
							defaultValue = {data.value}
							value = {this.state.value}
							className = {data.className + this.state.error_emty_field}
							placeholder = {data.placeholder}
							onChange = {data.onChange}
							onChange={this.enterToThisState.bind(this)} />


Почему спрашиваю, интересно понять механизм работы.

И еще доп вопрос, сейчас приходится делать запись в хранилище только по схеме ниже, а это везде объявлять сторе, getState(). В примера описывается через return, но у меня react игнорирует запись. Подозреваю, что из-за того, что делаю через actionCreator или туплю (ничего нагуглить не получилось)

подключение к компоненту
export default connect(
	    state => ({
	    	login: state.authorizationR.login,
			token: state.authorizationR.token,
			user_permission: state.authorizationR.user_permission,
			ThisTransport: state.devicesR.ThisTransport,
	    }),
		dispatch => bindActionCreators(ActionCreator, dispatch)
)(TransportPage)


сам actionCreators
const actionCreators = { 
			getData : getData,
};
	export default actionCreators


запись в хранилище
store.dispatch({
        		type: 'GET_devices',
        		[dispatch_key]: newlist
			})


конфиг сторе

export default function configureStore(initialState) {
  const store = createStore(rootReducer, initialState)
  return store
}


Буду признателен за комментарии, смотрел компиленный файл, выходит более 60 объявлений сторе... Не нравится эта схема
  • Вопрос задан
  • 247 просмотров
Подписаться 2 Оценить 4 комментария
Пригласить эксперта
Ваш ответ на вопрос

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

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