Tôi đang sử dụng Dialog component của material-ui cho ứng dụng React của mình. Làm cách nào để đặt thành phần của tôi thành một biến để tôi có thể gọi phương thức onShow()
?Hiển thị Hộp thoại trên Vật liệu phản ứng-ui
5
A
Trả lời
5
Khi thêm các thành phần Dialog
, chỉ cần thêm một ref để nó (ref="dialog"
ví dụ):
<Dialog ref="dialog" title="..." actions="...">
dialog content
</Dialog>
Và sau đó bạn có thể tham khảo nó từ mã thành phần chủ sở hữu của bạn bằng cách sử dụng this.refs.dialog.onShow(...)
.
Trang Dialog component thực sự sử dụng refs đằng sau hậu trường, như bạn có thể thấy từ số source code.
1
Tôi khuyên bạn nên đọc Dan Abramov's answer về cách triển khai phương thức trong React.
Để sử dụng hộp thoại liệu-ui bạn có thể thay thế các DeletePostModal trong ví dụ của mình với những điều sau đây:
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)
Các vấn đề liên quan
- 1. Cửa sổ Hộp thoại Chất liệu Góc không hiển thị
- 2. Android - Cách hiển thị hộp thoại trên màn hình gốc?
- 3. bootstrap-modal không hiển thị hộp thoại
- 4. Cách hiển thị biểu tượng thích hợp trên hộp thoại
- 5. EditText setText không hiển thị trên hộp thoại Dialog Fragment
- 6. Hiển thị hộp thoại "mở bằng" trên Android
- 7. Android GooglePlayServicesUtil.getErrorDialog() không hiển thị hộp thoại
- 8. Hộp thoại hiển thị AngularJS từ routeProvider
- 9. Hộp thoại cảnh báo không hiển thị
- 10. spinner hiển thị như hộp thoại
- 11. Hiển thị hộp thoại tùy chỉnhRouteLeaveHook hoặc history.listenTrước khi phản ứng-bộ định tuyến/redux?
- 12. Cách hiển thị hộp thoại "bận" (quay bánh xe) trên Điện thoại thông minh
- 13. Android Studio hiển thị hộp thoại không thay đổi trong hộp thoại thay đổi cam kết
- 14. PHP: Hiển thị hộp thoại có/không có xác nhận
- 15. Vật liệu góc: md-datepicker Vấn đề hiển thị CSS
- 16. Hộp thoại Bash hiển thị văn bản không xác định
- 17. Hiển thị hộp thoại in trước khi in
- 18. Tôi làm cách nào để hiển thị hộp thoại trên Hoạt động hiện tại trên Android?
- 19. Hiển thị Hộp thoại bằng cách sử dụng PendingIntent
- 20. Hiển thị hộp thoại xác thực proxy trong C#
- 21. Facebook JS SDK: Hiển thị hộp thoại oAuth trong iframe
- 22. Cách hiển thị hộp thoại onbeforeunload khi thích hợp?
- 23. CRM 2016: hộp thoại thông báo lỗi không hiển thị
- 24. Hiển thị hộp thoại jquery trong cửa sổ chính
- 25. Hộp thoại Chia sẻ trên Facebook luôn hiển thị hình ảnh xác thực trên Android
- 26. Hộp thoại Chất liệu AngularJS không hiển thị đúng cách trong Mac Safari
- 27. Hoạt động trênBackPress không hiển thị hộp thoại cảnh báo
- 28. Android VMD MySQL chèn và hiển thị hộp thoại
- 29. Tại sao dojo 1.7 không thể hiển thị hộp thoại?
- 30. Hiển thị android: dialogMessage trong hộp thoại ListPreference
'onShow' hiện đang bị phản đối: http://material-ui.com/#/components/dialog và mở nên được xử lý thông qua 'open' prop – TrySpace
Trong tất cả các ví dụ, nó hiển thị một nút có hộp thoại trên nó để khởi động nếu tôi muốn khởi động theo cách OP đang yêu cầu và ẩn nút hộp thoại. . – landed