[英]React onclick triggering on component loading
I am listing posts on map function.我在 map function 上列出帖子。 I created a button element and added onclick but on component loading triggering onclick function.
我创建了一个按钮元素并添加了 onclick 但在组件加载触发 onclick function 时。
Postlist.js: Postlist.js:
const createPostElement = (data, index) => (
<article className={'neokudum-postItem d-flex flex-row'} key={index}>
<div className={'postItem-UserInfoBox d-flex flex-column'}>
<div className={'postItem-Content'}>
<p>{data.postContent}</p>
{data.uploadedContent === 'null' ? '' : <LazyLoadImage className={'timeline-Image'} src={API_BASE + data.uploadedContent} effect={'blur'} /> }
</div>
<div className={'postItem-Actions'}>
<div className="d-flex flex-wrap mt-3">
<div className="p-2 postItem-Flex-Action">
<button className={'clearBtn'} onClick={this.props.likePost(5)}>
<Icon.Heart stroke={'#525f7f'} />
<span>0</span>
</button>
</div>
</div>
</div>
</div>
</article>
);
const postList = (
<div className={'neokudum-PostList'}>
{
this.props.posts.postList.map((post, index) =>
{createPostElement(post, index)}
)
}
</div>
);
I didn't press button but likePost
function loading on component render我没有按下按钮,但喜欢在组件渲染上加载
likePost
Convert to like this:转换成这样:
<button className={'clearBtn'} onClick={() => this.props.likePost(5)}> // at here
<Icon.Heart stroke={'#525f7f'} />
<span>0</span>
</button>
You're assigning the result of calling likePost
to the onClick
property.您将调用
likePost
的结果分配给onClick
属性。
onClick={this.props.likePost(5)}
should be应该
onClick={() => this.props.likePost(5)}
so that you assign an actual function instead.这样您就可以分配一个实际的 function 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.