React.js: Composer des composants pour créer des onglets

Je suis en train de faire un onglets composant. TabsSwitcher et TabsPanel doit être séparé des composants de sorte qu'ils pourraient être utilisés n'importe où dans les DOM, par exemple TabsSwitcher n'a pas à être suivie par TabsPanel.

Pour le faire fonctionner, j'ai besoin de quelque sorte de la connexion de ces éléments. En outre, TabsSwitcher doit être capable de dire TabsPanel lors d'un onglet a été cliqué.

/** @jsx React.DOM */

var TabsExample = React.createClass({
    render: function() {
        var tabs = [
            {title: 'first', content: 'Content 1'},
            {title: 'second', content: 'Content 2'}
        ];
        return <div>
            <TabsSwitcher items={tabs}/>
            <TabsContent items={tabs}/>
        </div>;
    }
});

var TabsSwitcher = React.createClass({
    render: function() {
        var items = this.props.items.map(function(item) {
            return <a onClick={this.onClick}>{item.title}</a>;
        }.bind(this));
        return <div>{items}</div>;
    },
    onClick: function(e) {
        //notify TabsContent about the click
    }
});

var TabsContent = React.createClass({
    render: function() {
        var items = this.props.items.map(function(item) {
            return <div>{item.content}</div>;
        });
        return <div>{items}</div>;
    }
});

React.renderComponent(
    <TabsExample/>,
    document.body
);

Quelle est la meilleure façon de le faire?


Solution: http://jsfiddle.net/NV/5YRG9/

source d'informationauteur NVI | 2014-01-01