Bileşenimin render işlevinde:
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>
);
}
her şey iyi işliyor, ancak <li>
öğeyi tıklattığınızda aşağıdaki hatayı alıyorum:
Yakalanmayan Hata: Değişmez İhlal: Nesneler bir Reaksiyon alt öğesi olarak geçerli değil (bulunan: {dispatchConfig, dispatchMarker, nativeEvent, target, currentTarget, type, eventPhase, bubbles, iptal edilebilir, timeStamp, defaultPrevented, isTrusted, view, detail, screenX anahtarlarına sahip nesne , screenY, clientX, clientY, ctrlKey, shiftKey, altKey, metaKey, getModifierState, düğme, düğmeler, relatedTarget, pageX, pageY, isDefaultPrevented, isPropagationStopped, _dispatchListeners, _dispatchIDs}). Bir alt koleksiyon oluşturmak istiyorsanız, bunun yerine bir dizi kullanın ya da React eklentilerinden createFragment (object) kullanarak nesneyi sarın. İşleme yöntemini kontrol edin
Welcome
.
Ben geçerseniz this.onItemClick.bind(this, item)
için (e) => onItemClick(e, item)
harita işlevi her şeyi eserleri içine beklendiği gibi.
Birisi neyi yanlış yaptığımı açıklayabilir ve neden bu hatayı alıyorum?
GÜNCELLEME 1:
onItemClick işlevi aşağıdaki gibidir ve this.setState kaldırıldığında hata kaybolur.
onItemClick(e, item) {
this.setState({
lang: item,
});
}
Ancak bu bileşenin durumunu güncellemem gerektiğinden bu satırı kaldıramıyorum
this.onItemClick
uygulanır?