내 구성 요소의 렌더링 기능에는 다음이 있습니다.
render() {
const items = ['EN', 'IT', 'FR', 'GR', 'RU'].map((item) => {
return (<li onClick={this.onItemClick.bind(this, item)} key={item}>{item}</li>);
});
return (
<div>
...
<ul>
{items}
</ul>
...
</div>
);
}
<li>
요소를 클릭하면 다음과 같은 오류가 발생합니다.
잡히지 않는 오류 : 불변 위반 : 객체가 React 자식으로 유효하지 않음 (발견 : {dispatchConfig, dispatchMarker, nativeEvent, target, currentTarget, type, eventPhase, bubbles, cancelable, timeStamp, defaultPrevented, isTrusted, view, detail, screenX) , screenY, clientX, clientY, ctrlKey, shiftKey, altKey, metaKey, getModifierState, 버튼, 버튼, relatedTarget, pageX, pageY, isDefaultPrevented, isPropagationStopped, _dispatchListeners, _dispatchIDs}). 자식 컬렉션을 렌더링하려면 대신 배열을 사용하거나 React 애드온에서 createFragment (object)를 사용하여 개체를 래핑하십시오. 의 렌더링 방법을 확인하십시오
Welcome
.
내가로 변경하는 경우 this.onItemClick.bind(this, item)
에 (e) => onItemClick(e, item)
지도 기능 모든 작품 안에 예상대로.
누군가 내가 잘못하고있는 것을 설명하고 왜이 오류가 발생하는지 설명 할 수 있다면 좋을 것입니다
업데이트 1 :
onItemClick 함수는 다음과 같으며 this.setState를 제거하면 오류가 사라집니다.
onItemClick(e, item) {
this.setState({
lang: item,
});
}
그러나이 구성 요소의 상태를 업데이트해야 하므로이 줄을 제거 할 수 없습니다
this.onItemClick
구현됩니까?