在 React 中处理组件上的 onClick
Handling an onClick on a component in React
假设我有一个 React 应用程序,并且我有组件 A 和组件 CountryCard,假设组件 A 多次显示组件 CountryCard,作为一副纸牌,通过使用地图指令,如
{this.props.countries.map(country => <CountryCard country={country}...
如何处理对一张 CountryCard 的点击?我使用 onClick 就够了吗,因为
{this.props.countries.map(country => <CountryCard country={country} onClick={this.handleCountryClick(country)}...
或者我必须添加一个事件侦听器,我该怎么做?
提前致谢
拉斐尔
应使用事件,因为事件有回调:
onClick={e => this.handleCountryClick(country)}
或
onClick={this.handleCountryClick}
您应该将 this.handleCountryClick 传递给 CardComponent
{this.props.countries.map(country => <CountryCard country={country} onCountryClick={this.handleCountryClick}...
然后在CountryCard里面调用props.onCountryClick,例子:
<div onClick={() => this.props.onCountryClick(this.props.country)}></div>
onClick
继续 Dom 个元素
const CountryCard = ({onClick}) => (<div onclick = {onClick}></div>)
/*maybe do a data attribute if you don't want `country` in perantasis*/
const handleCountryClick = (e) => {
var attr = e.currentTarget.getAttribute("country")
}
这是功能组件的示例
const CountryCard = ({onClick, country}) => (<div country = {country} onclick = {onClick}></div>)
我只是给你一个使用数据属性的选项,这样你就不必调用内联事件。
并提醒您点击事件继续 Dom 元素。
我在工作中不使用 React 类。
假设我有一个 React 应用程序,并且我有组件 A 和组件 CountryCard,假设组件 A 多次显示组件 CountryCard,作为一副纸牌,通过使用地图指令,如
{this.props.countries.map(country => <CountryCard country={country}...
如何处理对一张 CountryCard 的点击?我使用 onClick 就够了吗,因为
{this.props.countries.map(country => <CountryCard country={country} onClick={this.handleCountryClick(country)}...
或者我必须添加一个事件侦听器,我该怎么做? 提前致谢
拉斐尔
应使用事件,因为事件有回调:
onClick={e => this.handleCountryClick(country)}
或
onClick={this.handleCountryClick}
您应该将 this.handleCountryClick 传递给 CardComponent
{this.props.countries.map(country => <CountryCard country={country} onCountryClick={this.handleCountryClick}...
然后在CountryCard里面调用props.onCountryClick,例子:
<div onClick={() => this.props.onCountryClick(this.props.country)}></div>
onClick
继续 Dom 个元素
const CountryCard = ({onClick}) => (<div onclick = {onClick}></div>)
/*maybe do a data attribute if you don't want `country` in perantasis*/
const handleCountryClick = (e) => {
var attr = e.currentTarget.getAttribute("country")
}
这是功能组件的示例
const CountryCard = ({onClick, country}) => (<div country = {country} onclick = {onClick}></div>)
我只是给你一个使用数据属性的选项,这样你就不必调用内联事件。
并提醒您点击事件继续 Dom 元素。
我在工作中不使用 React 类。