Как использовать событие onClick или любое другое подобное событие?
import mycomponent from './path'
class App extends React.Component{
render()
{
<mycomponent onClick = {console.info("Click"}/>
}
}
Как дать mycomponent событие onClick?
import React from 'react'
const mycomponent = () =>{<p>Click Me</p>}
export default mycomponent



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Props - это первое значение, передаваемое в компонент реакции на основе функции:
import React from 'react'
const mycomponent = (props) =>{<p onClick = {props.onClick}>Click Me</p>}
export default mycomponent
И в вашем компоненте приложения:
import mycomponent from './path'
class App extends React.Component{
render()
{
<mycomponent onClick = {() => console.info("Click"}/>
}
}
@ joseph.e Убедитесь, что onClick - это функция. () => console.info("Click");
Стоит отметить две вещи:
вы можете захватывать click (или другие события) только на элементах DOM. Если вы хотите зафиксировать событие click в своем пользовательском компоненте, вам необходимо делегировать его элементу DOM внутри компонента.
то, что вы передаете в onClick, должно быть функцией. Здесь вы передаете результат вызова этой функции в onClick (console.info('Click') - это вызов функции, а не функция).
Вот рабочий пример:
const MyComponent = (props) => (<p onClick = {props.click}>Click Me</p>)
class App extends React.Component {
click () {
alert('clicked')
}
render() {
return (
<div>
Provide a function to click event: <MyComponent click = {this.click} />
Provide an anonymous function to click event: <MyComponent click = {() => alert('yes')} />
</div>
)
}
}
ReactDOM.render(
<App />,
document.getElementById('container')
);<script src = "https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src = "https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
<div id = "container">
</div>Также обратите внимание, что эта строчка const mycomponent = () =>{<p>Click Me</p>} должна быть
const mycomponent = () => <p>Click Me</p>
Если вы добавите фигурные скобки, вам нужно будет явно вернуть это значение.
вам нужно специально использовать .onClick?