React + Material-UI로 확인 다이얼로그를 작성해 보았다.

10140 단어 Reactmaterial-ui

React 괄호 좋은 대화 만들기



최근 마침내 React를 본격적으로 처음으로
입력 다이얼로그로부터의 확인 다이얼로그라고 하는 것이 생각외 깨끗하게 할 수 있었으므로
이것은 다이얼로그 역사에 새기려고 생각하고, Github 박물관에 기증해 왔습니다.

■React & Material-UI CommonDialog




데모도 붙이지 않고 기사를 세우면,
제대로 준비해 왔습니다.
■DEMO

여기 CodeSandbox 씨를 사용하였습니다.
■CodeSandbox

코드 해설



구성 요소 <CommonDialog ... />
import React, {useEffect} from 'react';
import Button from '@material-ui/core/Button';
import Dialog from '@material-ui/core/Dialog';
import DialogActions from '@material-ui/core/DialogActions';
import DialogContent from '@material-ui/core/DialogContent';

const CommonDialog: React.FunctionComponent<
    { msg: any, isOpen: any, doYes: any, doNo: any }
    > = ({msg, isOpen, doYes, doNo}) => {

  const [open, setOpen] = React.useState(false)

  useEffect(() => {
    setOpen(isOpen)
  }, [isOpen])

  return (
      <div>
        <Dialog
            open={open}
            keepMounted
            onClose={() => doNo()}
            aria-labelledby="common-dialog-title"
            aria-describedby="common-dialog-description"
        >
          <DialogContent>
            {msg}
          </DialogContent>
          <DialogActions>
            <Button onClick={() => doNo()} color="primary">
              No
            </Button>
            <Button onClick={() => doYes()} color="primary">
              Yes
            </Button>
          </DialogActions>
        </Dialog>
      </div>
  )
}
export default CommonDialog

구성 요소 배치


  • msg ... 메시지
  • isOpen ... 호출 소스 제어 상태
  • doYes ... "확인 Yes"에서의 실행 처리
  • doNo ... 「확인 No」로의 클로즈 처리
  •         <CommonDialog
                msg={"Message"}
                isOpen={commDlg}
                doYes={execute}
                doNo={() => {setCommDlg(false)}}
            />
    

    용법


    const FormDialog = () => {
    
      const [commDlg, setCommDlg] = React.useState(false)
      ...
      const execute = () => {
      }
    
      return (
        ...
            <CommonDialog
                msg={"登録しますか?"}
                isOpen={commDlg}
                doYes={execute}
                doNo={() => {setCommDlg(false)}}
            />
        ...
      )
    }
    export default FormDialog
    


    특정 컴포넌트에 동작과 상태를 갖게 하여 조합으로 뷰를 구성합니다.
    이 React의 사상은 확실히 오는 것이 있습니다.

    좋은 웹페이지 즐겨찾기