You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

45 lines
911 B

2 years ago
  1. import React from 'react'
  2. // APP 为父组件,Son 为子组件
  3. // 父传子:props + 函数
  4. // 子传父:子组件通过父组件传递过来的函数,并且把想要传递的数据当成函数的实参传入即可
  5. function Son(props) {
  6. const { message, changeMessage } = props
  7. function handleClick() {
  8. changeMessage('this is 666')
  9. }
  10. return (
  11. <div>
  12. {message}
  13. <button onClick={handleClick}>
  14. click
  15. </button>
  16. </div>
  17. )
  18. }
  19. class App extends React.Component {
  20. state = {
  21. message: 'this is message'
  22. }
  23. changeMessage = (newMessage) => {
  24. console.log('子组件传递的数据', newMessage)
  25. this.setState({
  26. message: newMessage
  27. })
  28. }
  29. render() {
  30. return (
  31. <div>
  32. <div>父组件</div>
  33. <Son message={this.state.message} changeMessage={this.changeMessage}></Son>
  34. </div>
  35. )
  36. }
  37. }
  38. export default App