在父组件中有一组React组件。在父组件的某个事件中,我想遍历子组件数组,并为每个组件调用一个方法。如何实现呢?似乎不能像在纯JS中那样仅仅通过类实例来调用方法。以下是简化后的代码:
const Item = props => {
const value = () => 'result!';
return (
<div></div>
)
}
const App = props => {
const items = props.items.map(item => <Item key={uuid()} item={item} />)
const run = e => {
items.map(item => console.log(item.value()))
}
return (
<button onClick={run} type="button">Run!</button>
)
}
const items = [
'Lorem ipsum dolor sit amet',
'consectetur adipiscing elit'
];
ReactDOM.render(<App items={items} />, document.querySelector("#app"))
我已创建一个包含此代码的jsfiddle-https://jsfiddle.net/jkLq26pg/37/。 在第11行调用了方法value()并引发了一个错误。但是记录
item.props
有效,并且为每个项输出道具。为什么方法没有被调用?
请给我提供一个建议,如何使它工作。
value
,即item.value()
,但它并不是一个类方法。你正在编写普通函数,因此value
仅在你的Item
函数内可用。 - jmargolisvtonChange
prop 来传递更改后的值,然后父组件保持值的状态。 - Marko Gresak