我在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