【发布时间】:2018-07-27 05:25:59
【问题描述】:
如果这听起来像是一个新问题,我很抱歉。还没找到答案。
我基本上是在尝试使用一个类的方法作为我 JSX 中 onClick 的回调。
这是我的 App 组件的代码:
import React from 'react';
import PropTypes from 'prop-types';
class App extends React.Component {
constructor(props) {
super(props);
this.deletePost = this.deletePost.bind(this);
}
deletePost() {
// this.props.posts = this.props.posts.splice(i,1)
console.log("Deleted the post");
}
render() {
return (
<div className="App">
<header className="App-header">
<h1 className="App-title">Welcome to learn React</h1>
</header>
<div>
<input type="text"/>
<button>Post</button>
</div>
<br/>
<div className="post-list">
<hr/>
{this.props.posts.map(function(post, i){
return <div>
{post} - {i}
<button onClick={this.deletePost}>Del</button>
<hr/>
</div>;
})}
</div>
</div>
);
}
}
App.propTypes = {
posts: PropTypes.array
};
export default App;
我得到的错误如下:
TypeError: Cannot read property 'deletePost' of undefined
(anonymous function)
src/components/App.js:34
31 | {this.props.posts.map(function(post, i){
32 | return <div>
33 | {post} - {i}
> 34 | <button onClick={this.deletePost}>Del</button>
35 | <hr/>
36 | </div>;
37 | })}
所以我的问题是如何将 deletePost 函数传递给 onClick?
【问题讨论】:
标签: javascript reactjs