admin管理员组

文章数量:1316693

I have a modal page popping up when the user clicks a button, it's working perfectly :

render() {
  return (
     <div>
         <section>
             <button onClick={() => this.refs.simpleDialog.show()}>Open Modal</button>
         </section>
         <SkyLight hideOnOverlayClicked ref="simpleDialog" title="Test Modal">
             Text that appears inside the modal page
            <Button onClick={() => this.refs.simpleDialog.hide()} >Got It</Button>
         </SkyLight>
    </div>
)}
  • But My goal is to open the modal automatically when the user opens the page for the first time.

  • I don't want to open the modal page by clicking on a button

Question:

  • Can I use an IIFE (An immediately-invoked function expression) in order to open the modal as soon as the user open the page ?

  • My approach was to set a boolean to true. Then open the modal if the value is set to true

Library being used for the modal :

I have a modal page popping up when the user clicks a button, it's working perfectly :

render() {
  return (
     <div>
         <section>
             <button onClick={() => this.refs.simpleDialog.show()}>Open Modal</button>
         </section>
         <SkyLight hideOnOverlayClicked ref="simpleDialog" title="Test Modal">
             Text that appears inside the modal page
            <Button onClick={() => this.refs.simpleDialog.hide()} >Got It</Button>
         </SkyLight>
    </div>
)}
  • But My goal is to open the modal automatically when the user opens the page for the first time.

  • I don't want to open the modal page by clicking on a button

Question:

  • Can I use an IIFE (An immediately-invoked function expression) in order to open the modal as soon as the user open the page ?

  • My approach was to set a boolean to true. Then open the modal if the value is set to true

Library being used for the modal : https://github./marcio/react-skylight

Share Improve this question asked Jan 1, 2017 at 2:32 AziCodeAziCode 2,6926 gold badges28 silver badges58 bronze badges 0
Add a ment  | 

2 Answers 2

Reset to default 5 +50

I think what you're looking for is the ponentDidMount() lifecycle method:

ponentDidMount() {
    this.refs.simpleDialog.show();
}

From the React docs:

ponentDidMount() is invoked immediately after a ponent is mounted. Initialization that requires DOM nodes should go here. If you need to load data from a remote endpoint, this is a good place to instantiate the network request. Setting state in this method will trigger a re-rendering.

Feel free to checkout other ponent lifecycle methods.

To have a model open on ponent mount, just set isVisible to true

<SkyLight isVisible={true} ref="simpleDialog" title="Test Modal">

本文标签: javascriptHow can I use an IIFE in the return function of a react componentStack Overflow