简体   繁体   English

React onclick 在组件加载时触发

[英]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>
    );

output: image1 output :图像1

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM