我在React中做了一個小例子。我碰到的一個問題是,當我將一個函數引用傳遞給onClick
事件處理函數,並且該事件被執行時,react沒有更新組件上的類,也就是說,它沒有執行組件中定義的另一個函數。在傳遞函數引用時反應不更新className
這裏的代碼,其中的問題是一個片段。整個代碼片段可以在這裏找到:https://jsfiddle.net/h6k4um9o/
const Numbers = (props) => {
const handleClick = (event) => {
props.selectNumber(event.target.innerText)
}
const numberClassName = (number) => {
if(props.selectedNumbers.indexOf(number) >= 0) {
return 'selected';
}
}
return (
<div className="card text-center">
<div>
{Numbers.list.map((number, index) =>
<span key={index} className={numberClassName(number)}
onClick={handleClick}>{number}</span>
)}
</div>
</div>
);
}
在上面的代碼時,我們通過參考onClick
事件不會應用由numberClassName
添加類。但是,使用內聯函數時問題已解決。
onClick={() => props.selectNumber(number)}>{number}</span>
有關此問題的任何想法?
在此先感謝。
啊!愚蠢的錯誤。感謝您指出問題。 – virajs0ni