Tôi đang khám phá ReactJS và material-ui (http://material-ui.com/).Giao diện người dùng Material - Mở LeftNav/Drawer trên AppBar nhấp
Tôi cố gắng tạo mẫu mặc định cho ứng dụng của mình. Tôi muốn sử dụng một AppBar và LeftNav (được đổi tên trong Ngăn kéo trong phiên bản mới) trong các thành phần được tách riêng.
AppBar có nút menu trên đó theo mặc định. Tôi muốn sử dụng nó để mở LeftNav nhưng tôi không biết làm thế nào tôi có thể gọi chức năng thành phần LeftBarComponent của tôi để mở nó.
Tôi gần như đã hiểu cách giao tiếp giữa các thành phần nhưng trong trường hợp của tôi, tôi không biết làm thế nào tôi có thể làm vì không có tài liệu về nó. Điều duy nhất mà tôi biết để mở các yếu tố LeftNav là sử dụng LeftNav.toggle()
http://material-ui.com/#/components/left-nav
Nhờ sự giúp đỡ của bạn.
Default.jsx
use strict';
var React = require('react');
var pageStore = require('../../stores/page');
var MainNavbar = require('../modules/navbar.jsx');
var LeftNavbar = require('../modules/leftbar.jsx');
var getState = function() {
return {
title: pageStore.get().title
};
};
var DefaultComponent = React.createClass({
mixins: [pageStore.mixin],
componentDidMount: function() {
pageStore.emitChange();
},
getInitialState: function() {
return getState();
},
render: function() {
return (
/* jshint ignore:start */
<div className="main-container">
<MainNavbar />
<LeftNavbar />
<div className="content">
{this.props.children}
</div>
</div>
/* jshint ignore:end */
);
},
// Event handler for 'change' events coming from store mixins.
_onChange: function() {
this.setState(getState());
}
});
module.exports = DefaultComponent;
navbar.jsx
'use strict';
var React = require('react');
var routeActions = require('../../actions/routes');
var MUI = require('material-ui');
var AppBar = MUI.AppBar;
// Navbar Component
// Application main menu
// Usage: <Navbar />
var NavbarComponent = React.createClass({
render: function() {
return (
/* jshint ignore:start */
<AppBar title="MyApp" onMenuIconButtonTouchTap={ this._handleClick }>
<div className="clear"></div>
</AppBar>
/* jshint ignore:end */
);
},
_handleClick: function()
{
console.log('ok');
}
});
module.exports = NavbarComponent;
leftbar.jsx
'use strict';
var React = require('react');
var routeActions = require('../../actions/routes');
var MUI = require('material-ui');
var LeftNav = MUI.LeftNav;
var MenuItem = MUI.MenuItem;
var menuItems = [
{ route: 'home', text: 'Home' },
{ route: 'about', text: 'About' },
];
// LeftBar Component
// Application left menu
// Usage: <LeftBar />
var LeftBarComponent = React.createClass({
render: function() {
return (
/* jshint ignore:start */
<LeftNav menuItems={menuItems} docked={false} />
/* jshint ignore:end */
);
},
_handleClick: function()
{
console.log('ok');
}
});
module.exports = LeftBarComponent;
Đồng thời xem câu trả lời cho câu hỏi này: http://stackoverflow.com/questions/22639534/pass-props-to-parent-component-in-react-js –