#json #reactjs #jwt
#json #reactjs #jwt
Вопрос:
я пытаюсь ОТПРАВИТЬ данные на сервер. моя проблема в том, что я получаю ошибку ‘422 (необработанный объект)’, потому что все данные в строке, поэтому мне нужно преобразовать некоторые данные в int. Как преобразовать некоторые данные в int из массива перед привязкой к другим параметрам? мне нужно преобразовать некоторые данные, которые invono amp; lotno в int.
class App extends Component {
constructor(props) {
super(props);
this.state = {
isLoaded: false,
alldata: [],
singledata: {
invono: "",
invodate: "",
lotno: "",
buildup: "",
custid: "",
},
};
createInvoice() {
fetch("http://xxx:8081/invoice", {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: "Bearer " token,
},
body: JSON.stringify(this.state.singledata),
//JSON.parse(JSON.stringify(this.state.singledata)),
// JSON.stringify({this.state.singledata : parseInt($({this.state.singledata.invono}).val(),10)})
}).then(
this.setState({
singledata: {
invono: "",
invodate: "",
lotno: "",
buildup: "",
custid: "",
},
})
);
}
обработчик для пользовательского ввода.
handleChange(event) {
var invono = this.state.singledata.invono;
var invodate = this.state.singledata.invodate;
var lotno = this.state.singledata.lotno;
var buildup = this.state.singledata.buildup;
var custid = this.state.singledata.custid;
if (event.target.name == "invono") invono = event.target.value;
else if (event.target.name == "invodate") invodate = event.target.value;
else if (event.target.name == "lotno") lotno = event.target.value;
else if (event.target.name == "buildup") buildup = event.target.value;
else if (event.target.name == "custid") custid = event.target.value;
this.setState({
singledata: {
invono: invono,
invodate: invodate,
lotno: lotno,
buildup: buildup,
custid: custid,
},
});
}
Ответ №1:
Использовать parseInt
для числовых полей.
handleChange(event) {
const fieldname = event.target.name;
// put in the names of the fields that need to be converted to integers into
// the array below
const convertToInts = ["invono", "lotno"];
const value = convertToInts.includes(fieldname) ? parseInt(event.target.value, 10) : event.target.value;
this.setState({
...this.state,
singledata: {
...this.state.singledata,
[fieldname]: value,
},
});
}
Комментарии:
1. почему мы должны это делать, чтобы использовать
int
? разве не глупо делать это так сложно? кто эти люди, создающие эти языки программирования… возможно, им придется начать проводить тест на IQ для участников