在 React 组件中使用常量
Using constants in React Components
我正在尝试在单击列表项时打印一些内容以进行控制台。但是列表被定义为使用它的组件之外的常量。显然这里的 onclick/logItem 是行不通的。你会怎么做?
奇怪的是,它会在组件安装时将每个列表项记录到控制台。
我的代码:
import React, { Component } from 'react';
const LIST_ITEMS = require('./ListItems.json');
const myList =
LIST_ITEMS.data.Items.map((Item) => (
<li key={Item.id} onClick={logItem(Item.name)}>
{Item.name.toUpperCase()}
</li>
))
;
function logItem(name){
console.log(name);
}
class ItemList extends Component {
render() {
return (
<div id="item-list-wrapper">
<h3>Select an Item</h3>
<ul id="item-list">{myList}</ul>
</div>
);
}
}
export default ItemList;
您必须将函数传递给 onClick
,而不是 调用 的结果 logItem
:
onClick={() => logItem(Item.name)}
我正在尝试在单击列表项时打印一些内容以进行控制台。但是列表被定义为使用它的组件之外的常量。显然这里的 onclick/logItem 是行不通的。你会怎么做?
奇怪的是,它会在组件安装时将每个列表项记录到控制台。
我的代码:
import React, { Component } from 'react';
const LIST_ITEMS = require('./ListItems.json');
const myList =
LIST_ITEMS.data.Items.map((Item) => (
<li key={Item.id} onClick={logItem(Item.name)}>
{Item.name.toUpperCase()}
</li>
))
;
function logItem(name){
console.log(name);
}
class ItemList extends Component {
render() {
return (
<div id="item-list-wrapper">
<h3>Select an Item</h3>
<ul id="item-list">{myList}</ul>
</div>
);
}
}
export default ItemList;
您必须将函数传递给 onClick
,而不是 调用 的结果 logItem
:
onClick={() => logItem(Item.name)}