Sto scoprendo ReactJS e material-ui (http://material-ui.com/).UI materiale - Apri LeftNav/Drawer su AppBar fai clic su
Provo a creare un modello predefinito per la mia applicazione. Desidero utilizzare un AppBar e un LeftNav (rinominato in Drawer nelle nuove versioni) in componenti separati.
L'AppBar ha un pulsante di menu su di esso per impostazione predefinita. Voglio usarlo per aprire il LeftNav ma non so come posso chiamare la mia funzione componente LeftBarComponent per aprirlo.
Ho quasi capito come comunicare tra componenti, ma nel mio caso, non so come potrei fare perché non c'è documentazione a riguardo. L'unica cosa che so per aprire l'elemento LeftNav è quello di utilizzare LeftNav.toggle()
http://material-ui.com/#/components/left-nav
Grazie per il vostro aiuto.
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;
Si veda anche la risposta per questa domanda: http://stackoverflow.com/questions/22639534/pass-props-to-parent-component-in-react-js –