Material-ui: [Dialog] onRequestClose๊ฐ€ ์‹คํ–‰๋˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ๋ญ˜ ์ž˜๋ชปํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

์— ๋งŒ๋“  2015๋…„ 12์›” 06์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: mui-org/material-ui

์ €๋Š” ReactJS์™€ Material-Ui๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ…Œ์ŠคํŠธํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ž‘์€ ํ…Œ์ŠคํŠธ ๊ตฌ์„ฑ ์š”์†Œ์˜ ๊ฒฝ์šฐ ๋Œ€ํ™” ์ƒ์ž๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ท€ํ•˜์˜ ์˜ˆ์ œ์™€ ๋™์ผํ•œ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์ง€๋งŒ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋ฒ„๊ทธ๊ฐ€ ์žˆ๊ฑฐ๋‚˜ ๋ฌธ์„œ๊ฐ€ ์ถฉ๋ถ„ํžˆ ๋ช…ํ™•ํ•˜์ง€ ์•Š์•˜์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

const {Dialog, FlatButton} = MUI;

Home = React.createClass({
  getInitialState() {
    return {
      welcomeModal: false
    };
  },
  openWelcomeDialog() {
    this.setState({welcomeModal:true});
  },
  closeWelcomeDialog(buttonClicked) {
    console.log('Close The Welcome Dialog.');
    this.setState({welcomeModal:false});
  },
  render() {
    let modalActions = [
      { text: 'Cancel' }
    ];
    return (
      <div>
        <h1>Welcome to my app</h1>
        <a href="#" onClick={this.openWelcomeDialog}>Open the Welcome Modal</a>
        <Dialog
          title="Welcome Modal"
          actions={modalActions}
          autoDetectWindowHeight={true}
          autoScrollBodyContent={true}
          open={this.state.welcomeModal}
          onRequestClose={this.closeWelcomeDialog}>
        <div style={{height: '1000px'}}>
          Really long content
        </div>
        </Dialog>
      </div>
    );
  }
});

๋ฌด์Šจ ์ผ์ด์•ผ:

๋งํฌ๋ฅผ ํด๋ฆญํ•˜๋ฉด ์ด๋ฒคํŠธ๊ฐ€ ์‹œ์ž‘๋˜๊ณ  ๋ชจ๋‹ฌ์ด ์˜ฌ๋ฐ”๋ฅธ ๋ฐฉ์‹์œผ๋กœ ์—ด๋ฆฝ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ: ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ๋˜๋Š” ์ทจ์†Œ ๋ฒ„ํŠผ์—์„œ ํด๋ฆญํ•˜๋Š” ๊ฒƒ์€ ์ค‘์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ชจ๋‹ฌ์ด ๋‹ซํžˆ์ง€ ์•Š๊ณ  console.log๋„ ์‹คํ–‰๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค... ๊ทธ๋ž˜์„œ: ๋ฉ”์„œ๋“œ๊ฐ€ ํ˜ธ์ถœ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค! ๋‚ด ์˜ˆ์—์„œ๋Š” ๋ชจ๋‹ฌ์„ ๋‹ซ๋Š” ๊ฒƒ์ด ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์œผ๋ฉฐ injectTapEventPlugin() ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋ฒคํŠธ์™€ ๊ด€๋ จ๋œ ๋‹ค๋ฅธ ๋ชจ๋“  ๊ฒƒ์ด ์ž‘๋™ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๊ฒƒ์„ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

๋ฌธ์ œ๋Š” ์–ด๋””๋ฅผ ํด๋ฆญํ•˜๋“  ์‹œ์ž‘ ํ•ญ๋ชฉ๊ณผ ๊ฑฐ์˜ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. ์‹คํ–‰๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  3 ๋Œ“๊ธ€

๋จผ์ € injectTapEventPlugin() ๋ฅผ) ํ˜ธ์ถœํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

์˜ค .. '๋ฆฌ ? ์ด์ œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ž ์‹œ ๋™์•ˆ ๋ฌธ์ œ๋ฅผ ์ฐพ์œผ๋ ค๊ณ  ๋…ธ๋ ฅํ–ˆ์Šต๋‹ˆ๋‹ค ...

๊ทธ๋ž˜์„œ ๋Œ€๋‹ต์€: ์•„๋‹ˆ์š”, ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ๋ถ€๋ฅธ ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. Material-Ui Docs์—์„œ ์ด๊ฒƒ์„ ์ฐธ์กฐํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. @oliviertassinari ๊ฐ์‚ฌ

๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์œผ๋ฉฐ injectTapEventPlugin() ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋ฒคํŠธ์™€ ๊ด€๋ จ๋œ ๋‹ค๋ฅธ ๋ชจ๋“  ๊ฒƒ์ด ์ž‘๋™ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๊ฒƒ์„ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

๋ฌธ์ œ๋Š” ์–ด๋””๋ฅผ ํด๋ฆญํ•˜๋“  ์‹œ์ž‘ ํ•ญ๋ชฉ๊ณผ ๊ฑฐ์˜ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. ์‹คํ–‰๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰