Guest User

Untitled

a guest
Aug 21st, 2018
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.81 KB | None | 0 0
  1. // Parent Component
  2.  
  3. class Root extends React.Component {
  4. constructor(props) {
  5. super(props);
  6. this.state = { refresh: true };
  7. // Parents non-state variable.
  8. this.submitBtnVisibility = { visibility1: 1, visibility2: 2 };
  9.  
  10. }
  11.  
  12. componentDidMount() {
  13. console.log("Root componentDidMount ");
  14. }
  15.  
  16. componentDidUpdate(prevProps, prevState) {
  17. console.log("Root componentDidUpdate ", prevProps, prevState);
  18. }
  19.  
  20. handleonclick = () => {
  21. console.log(" Root Btn Clicked");
  22. //this.setState({ var1: 5 }); -> If I enable this line , child is getting rendered
  23. this.submitBtnVisibility.visibility1 = 5;
  24. };
  25. render() {
  26. console.log(" Root Render ");
  27.  
  28. return (
  29. <div className={classes.uploadContainerArea}>
  30. <Btncomponent visibility={this.submitBtnVisibility} />
  31. <button className={classes.btnroot} onClick={this.handleonclick}>
  32. {" "}
  33. Root Btn{" "}
  34. </button>
  35. </div>
  36. );
  37. }
  38. }
  39.  
  40. // Child Component
  41.  
  42. class Btncomponent extends React.Component {
  43. constructor(props) {
  44. super(props);
  45. this.state = { Btnprops: this.props.visibility };
  46. }
  47.  
  48. componentDidMount() {
  49. console.log("Btncomponent componentDidMount ");
  50. }
  51.  
  52. componentDidUpdate(prevProps, prevState) {
  53. console.log("Btncomponent componentDidUpdate ", prevProps, prevState);
  54. }
  55.  
  56. static getDerivedStateFromProps(props, state) {
  57. console.log(" getDerivedStateFromProps ");
  58. return null;
  59. }
  60. shouldComponentUpdate(nextProps, nextState) {
  61. console.log(" shouldComponentUpdate ");
  62. return true;
  63. }
  64. getSnapshotBeforeUpdate(prevProps, prevState) {
  65. console.log(" getSnapshotBeforeUpdate ");
  66. return null;
  67. }
  68. render() {
  69. console.log(" Btncomponent Render ", this.props);
  70.  
  71. return <button type="button"> {this.props.visibility.visibility1} </button>;
  72. }
  73. }
Add Comment
Please, Sign In to add comment