#javascript #reactjs
#javascript #reactjs
Вопрос:
У меня есть поля ошибок реакции, которые я буду отображать на экране.
this.state = {
errorMerchantid: '',
errorPassword: '',
errorRePassword: ''
}
поля ошибок будут динамическими. это может быть как показано ниже
err.response.data={
merchantID: 'merchant id error'
}
в приведенном выше случае у меня есть одна ошибка поля, которая является MerchantId, тогда мне нужно установить значение state, как показано ниже.
this.setState ({errorMerchantid: err.response.data.merchantID })
или
err.response.data={
merchantID: 'merchant id error',
password: 'invalid password'
}
в приведенном выше случае у меня ошибка в 2 полях: идентификатор продавца и пароль, затем мне нужно установить значение state, как показано ниже
this.setState ({errorMerchantid: err.response.data.merchantID,
errorPassword: err.response.data.errorPassword})
или
err.response.data={
merchantID: 'merchant id error',
password: 'invalid password',
repassword: 'invalid re-entered password'
}
в приведенном выше случае у меня ошибка в 3 полях: MerchantId, password и repassword, затем мне нужно установить значение state, как показано ниже.
this.setState ({errorMerchantid: err.response.data.merchantID,
errorPassword: err.response.data.errorPassword,
repassword: err.response.data.repassword })
Комментарии:
1. какой код вы написали до сих пор? можете ли вы это показать?
2. const errorResponseFields = Object.keys(err.response.data) const formFields = [‘MerchantId’, ‘password’, ‘repassword’] const errorFeilds = errorResponseFields.every((поля) => { //formFields.includes(поля) запутался здесь, как достичь })
3. вы могли бы просто использовать то же имя для состояния ошибки и просто сделать «this.setState(err.response.data)
Ответ №1:
Вы можете создать объект с обновлениями состояния и заполнить его условно
// err.response.data
const {merchantID,password,repassword} = err.response.data;
const errors = {};
if (merchantID){
errors.errorMerchantid = merchantID;
}
if (password){
errors.errorPassword = password;
}
if (merchantID){
errors.errorRePassword = repassword;
}
this.setState(errors);
Если вам нужно каждый раз сбрасывать другие ошибки, вы могли бы сделать
// err.response.data
const {merchantID,password,repassword} = err.response.data;
const errors = {
errorMerchandId: merchantID || '',
errorPassword: password || '',
errorRePassword: repassword || ''
};
this.setState(errors);
Имейте в виду, что вы должны соответствовать регистру свойств состояния, если они чувствительны к регистру.