機能コンポーネントを使用して小道具で引数を渡す方法はここにあります。 私のクリックイベントはPopUpHandle
からPopUpHandle私はContentSection
コンポーネントから値を取得する必要があります。 ContentSectionがリストになります。各リストをクリックすると、現在クリックされているリストのvalue
が得られます。私はこのコードで私のconsole
を印刷しましたが、undefined
が印刷されましたが、機能コンポーネントをどのように処理するのか分かりません。機能コンポーネントを使用して小道具で引数を渡す方法
class mainComponent extends Component {
constructor(props) {
super(props);
this.popTrigger = this.popTrigger.bind(this);
}
popTrigger(data){
console.log(data);
}
render(){
return(
<Popup popTrigger={this.popTrigger} />
)
}
}
export default mainComponent;
this.props.popTrigger()
の呼び出し中にあなたがdata
に合格しなかったポップアップコンポーネント
const PopUpHandle = ({ popTrigger, value}) => <li onClick={popTrigger.bind(this, value)} />;
const ContentSection =({popTrigger, value}) =>(
<div>
{value === 'TEST1' && (
<div>
<PopUpHandle popTrigger={popTrigger} value={value} />
</div>
</div>
)}
{value === 'TEST2' && (
<div>
<PopUpHandle popTrigger={popTrigger} value={value} />
</div>
</div>
)}
</div>
)
const ContentList = (({ items, popTrigger}) => (
<div>
{items.map((value, index) => (
<ContentSection
key={`item-${index}`}
popTrigger={popTrigger}
index={index}
value={value}
/>
))}
</div>
)
);
class example extends Component {
constructor(props) {
super(props);
this.state = {
items: ['TEST1', 'TEST2', 'TEST3', 'TEST4'],
};
this.popTrigger = this.popTrigger.bind(this);
}
popTrigger(){
this.props.popTrigger()
}
render(){
return(
<ContentList popTrigger={this.popTrigger} items={this.state.items} />
)
}
}
export default example;
私はまた質問を追加しながらそれを逃した私は同じ取得します。 –
"example"クラスの@sedhuraghuraman propTriggerは値を受け取って渡していません。 –
@JohnnyZabalaありがとう!私はクラス名に言及するのを忘れていた。 –