でもSO上、ここで他の質問で見つかったアドバイスに従った後、私はまだのonClick機能this.changeContent
が正しく動作するように見えることはできません。どのように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