道具传递的不能射击方法
Cant fire method passed by props
使用 React,我的 app.js 中有一个简单的 console.log('hello')。我通过 props 将它传递给一个组件 "thumbnails group",它将映射到一个数组,创建 "thumbnails",并且它们中的每一个都应该使用 onClick 触发该方法。当我这样做时,什么也没有发生。我错过了什么?
App.js
escolheTextura = () => {
console.log('hello')
};
<ThumbnailGroup
escolheTextura={this.escolheTextura}/>
ThumbnailGroup.js
return (
<div className={["column", "group"].join(' ')}>
{
props.texturas.map(thumbnail => {
return <Thumbnail
onClick={() => props.escolheTextura()}>
{thumbnail}
</Thumbnail>
}
)
}
</div>
);
Thumbnail.js
return (
<div className={["button is-primary", "thumbnail"].join(' ')}>
<span>
<figure className={"image is-32x32"}>
<img src={"image is-32x32"}/>
</figure>
</span>
</div>
)
};
你应该通过 props.escolheTextura
更进一步。 DOM 元素接收点击,而不是 React.js 组件所以,你必须将你的功能传递给 Thumbnail
组件并制作一些 DOM 元素,说 div
, 处理点击事件:
ThumbnailGroup.js
return (
<div className={["column", "group"].join(' ')}>
{
props.texturas.map(thumbnail => {
return <Thumbnail
escolheTextura={props.escolheTextura}>
{thumbnail}
</Thumbnail>
}
)
}
</div>
);
ThumbnailGroup.js
return (
<div onClick={this.props.escolheTextura} className={["button is-primary", "thumbnail"].join(' ')}>
<span>
<figure className={"image is-32x32"}>
<img src={"image is-32x32"}/>
</figure>
</span>
</div>
)
ThumbnailGroup.js
return (
<div className={["column", "group"].join(' ')}>
{
props.texturas.map(thumbnail => {
return <Thumbnail
escolheTextura ={props.escolheTextura}>
{thumbnail}
</Thumbnail>
}
}
</div>
);
Thumbnail.js
return (
<div onClick={props.escolheTextura} className={["button is-primary", "thumbnail"].join(' ')}>
<span>
<figure className={"image is-32x32"}>
<img src={"image is-32x32"}/>
</figure>
</span>
</div>
)
};
使用 React,我的 app.js 中有一个简单的 console.log('hello')。我通过 props 将它传递给一个组件 "thumbnails group",它将映射到一个数组,创建 "thumbnails",并且它们中的每一个都应该使用 onClick 触发该方法。当我这样做时,什么也没有发生。我错过了什么?
App.js
escolheTextura = () => {
console.log('hello')
};
<ThumbnailGroup
escolheTextura={this.escolheTextura}/>
ThumbnailGroup.js
return (
<div className={["column", "group"].join(' ')}>
{
props.texturas.map(thumbnail => {
return <Thumbnail
onClick={() => props.escolheTextura()}>
{thumbnail}
</Thumbnail>
}
)
}
</div>
);
Thumbnail.js
return (
<div className={["button is-primary", "thumbnail"].join(' ')}>
<span>
<figure className={"image is-32x32"}>
<img src={"image is-32x32"}/>
</figure>
</span>
</div>
)
};
你应该通过 props.escolheTextura
更进一步。 DOM 元素接收点击,而不是 React.js 组件所以,你必须将你的功能传递给 Thumbnail
组件并制作一些 DOM 元素,说 div
, 处理点击事件:
ThumbnailGroup.js
return (
<div className={["column", "group"].join(' ')}>
{
props.texturas.map(thumbnail => {
return <Thumbnail
escolheTextura={props.escolheTextura}>
{thumbnail}
</Thumbnail>
}
)
}
</div>
);
ThumbnailGroup.js
return (
<div onClick={this.props.escolheTextura} className={["button is-primary", "thumbnail"].join(' ')}>
<span>
<figure className={"image is-32x32"}>
<img src={"image is-32x32"}/>
</figure>
</span>
</div>
)
ThumbnailGroup.js
return (
<div className={["column", "group"].join(' ')}>
{
props.texturas.map(thumbnail => {
return <Thumbnail
escolheTextura ={props.escolheTextura}>
{thumbnail}
</Thumbnail>
}
}
</div>
);
Thumbnail.js
return (
<div onClick={props.escolheTextura} className={["button is-primary", "thumbnail"].join(' ')}>
<span>
<figure className={"image is-32x32"}>
<img src={"image is-32x32"}/>
</figure>
</span>
</div>
)
};