Собственно суть:
если пишу сразу в функции которую вызываю ( как в коде ниже)
this.setState({
value: event.target.value
})
реакт молчит об ошибках.
если делаю, по сути то же самое, но уже в if, то в консоле сообщение типа такого
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 объявлений сторе... Не нравится эта схема