0
반응 나는 국가의 구조는 다음과 같습니다 지정 값에
this.state = {
data: {
tags: []
},
items: [],
input: ''
};
나는 데이터를 제출
, 내가 항목 배열 데이터와 태그의 배열을 할당하려고합니다.var newData = this.state.items.slice(); //copy array
this.setState({
...this.state,
data: { ...this.state.data, tags: newData }
});
newData
안에 모든 변수를 가지고 있지만, tags
은 항상 비어 있습니다. 태그 배열에 정확히 같은 값을 할당하려면 어떻게해야합니까?
console.log(this.state.data.tags, this.state.items);
이
UPDATE : 여기
내 콘솔 로그 당신이 상태를 설정하면onSubmit = (e) => {
e.preventDefault();
const errors = this.validate(this.state.data);
this.setState({ errors });
if (Object.keys(errors).length === 0) {
this.setState({ loading: true });
this.setState(prevState => ({
data: {
...prevState.data,
tags: prevState.items
}
}));
console.log(this.state.data.tags, this.state.items);
this.props
.submit(this.state.data)
.catch(err =>
this.setState({ errors: err.response.data.errors, loading: false })
);
}
};
설명해 주셔서 감사합니다. 그러나이 방법을 사용한 후에는 태그 배열이 여전히 비어 있습니다. – Julia
@Julia 'items'는 비어 있지 않습니까? – Li357
예, 내 콘솔 로그를 보여주기 위해 내 게시물을 업데이트했습니다. 방금 this.state.data 안의 배열이 this.state와 비교하여 변경하는 것이 더 어렵다는 이상한 문제를 발견했습니다. 그게 문제가 될 수 있어요? – Julia