即使按照其他問題發現在這裏SO意見後,我似乎仍不能得到的onClick功能this.changeContent
正常工作:如何獲得React onClick的工作? (不帶箭頭的功能甚至工作)
import React from 'react';
import Maxim from './Maxim';
import Challenge from './Challenge';
import Prompt from './Prompt';
class ContentContainer extends React.Component {
constructor() {
super();
this.changeContent = this.changeContent.bind(this);
this.state = {
content: "maxim"
}
}
changeContent(event) {
console.log(this);
if (this.state.content == "maxim") {
this.setState({ content: "challenge" })
} else {
this.setState({ content: "maxim" })
}
}
render() {
let renderedContent = null;
if (this.state.content == "challenge") {
renderedContent = <Challenge content="The trick to presence is to listen to the space between the sounds." />;
} else {
renderedContent = <Maxim quote="Silence can be heard in every sound. All you need is to listen." />;
}
return (
<div className="content-container">
{renderedContent}
<Prompt onClick={this.changeContent}/>
</div>
);
}
}
export default ContentContainer;
我已經嘗試使用bind
,箭頭函數(如這裏),純函數參考...幾乎所有的變種我見過這裏SO和其他地方。我原本只有this.changeContent()
,並且該函數在頁面加載時被調用。我至少已經修復了這個問題,但是這個功能依然沒有被調用 - this.state.content
都沒有被更改,控制檯也沒有登錄this
。
謝謝。
您發佈的代碼看起來不錯。如果它不起作用,那麼問題可能在其他地方。請發佈所有相關信息。 –
是的,如下所述,它是' '本身缺少導致問題的函數引用。 –
Alacritas