2015-08-21 66 views

回答

5

當添加Dialog組件,只需添加一個裁判它(ref="dialog"爲例):

<Dialog ref="dialog" title="..." actions="..."> 
    dialog content 
</Dialog> 

然後你就可以使用this.refs.dialog.onShow(...)從您的所有者組件代碼中引用。

Dialog component頁面實際上在幕後使用了參考文獻,正如您可以從其source code中看到的那樣。

+6

'onShow'現在已經過時:http://material-ui.com/# /組件/對話框和開放應通過'open'道具來處理 – TrySpace

+2

在所有示例中,它顯示一個帶有對話框的按鈕,用於啓動如果我想以OP請求並隱藏對話框按鈕的方式啓動該按鈕。 。 – landed

1

我建議您閱讀Dan Abramov's answer,瞭解如何在React中實現模態。

爲了使用材料的用戶界面對話框中你可以用下面的更換DeletePostModal在他的例子:

import { deletePost, hideModal } from '../actions'; 
import React, {Component} from 'react'; 
import {connect} from "react-redux"; 
import {Button, Dialog, DialogActions, DialogTitle} from "material-ui"; 
import PropTypes from 'prop-types'; 

const DeletePostModal = ({ post, dispatch }) => (
    <Dialog open={true}> 
     <DialogTitle>Delete post {post.name}?</DialogTitle> 
      <DialogActions> 
       <button onClick={() => { 
         dispatch(deletePost(post.id)).then(() => { 
          dispatch(hideModal()); 
         }); 
        }}> 
         Yes 
        </button> 
        <button onClick={() => dispatch(hideModal())}> 
         Nope 
        </button> 
     </DialogActions> 
    </Dialog> 
) 

export default connect(
    (state, ownProps) => ({ 
    post: state.postsById[ownProps.postId] 
    }) 
)(DeletePostModal)