我有以下内容。
import React from 'react'
import Profile from './Profile'
import Messages from './Messages'
class ContactContent extends React.Component {
constructor () {
super()
this.state = {
message: ''
}
this.handleOnClick = (e) => {
e.preventDefault()
console.log('send message called')
// this.props.onSendMessage(this.state.message)
}
}
render () {
const { id, name, profile, messages } = this.props.user
return (
<div className='content'>
<Profile
name={id}
profile={profile}
/>
<Messages
messages={messages}
/>
<div className='message-input'>
<div className='wrap'>
<input type='text' placeholder='Write your message...' onChange={(e) => this.setState({ message: e.target.value })} />
{/* <i className="fa fa-paperclip attachment" aria-hidden="true"></i> */}
<button className='' onClick={this.handleOnClick}><i className='fa fa-paper-plane' aria-hidden='true' /></button>
</div>
</div>
</div>
)
}
}
export default ContactContent
当我单击按钮onclick时,它会触发handleonclick函数。但是handleonclick的调用就像无限时间一样。这是我第一次见过的奇怪行为,知道我做错了什么吗?
答案 0 :(得分:0)
修复了存在导致此问题的外部javascript文件的问题。代码没有错。
答案 1 :(得分:0)
否,您每次在页面加载/渲染加载时都在调用 handleOnClick 因此,在不进行此操作的情况下,或者为了避免多次通话,请尝试使用:
onClick事件中该函数的胖箭头调用。
<button className='' onClick={(e) => this.handleOnClick(e)}><i className='fa fa-paper-plane' aria-hidden='true' /></button>