Skip to content

Instantly share code, notes, and snippets.

@goatslacker
Last active August 29, 2015 14:19
Show Gist options
  • Save goatslacker/5c3e48517e4041264364 to your computer and use it in GitHub Desktop.
Save goatslacker/5c3e48517e4041264364 to your computer and use it in GitHub Desktop.
import { Actions } from 'flummox';
class MessageActions extends Actions {
createMessage(messageContent) {
return {
content: messageContent,
date: Date.now(),
};
}
}
import { Store } from 'flummox';
class MessageStore extends Store {
constructor(flux) {
super(); // Don't forget this step
const messageActionIds = flux.getActionIds('messages');
this.register(messageActionIds.createMessage, this.handleNewMessage);
this.state = {
messages: [],
};
}
handleNewMessage(message) {
this.setState({
messages: this.state.messages.concat([message]),
});
}
}
import { Flux } from 'flummox';
class AppFlux extends Flux {
constructor() {
super();
this.createActions('messages', MessageActions);
// The extra argument(s) are passed to the MessageStore constructor
this.createStore('messages', MessageStore, this);
}
}
const flux = new AppFlux();
import FluxComponent from 'flummox/component';
import React from 'react';
const View = React.createClass({
render() {
return <SubView />
}
})
const SubView = React.createClass({ render() {
return (
<FluxComponent>
<InsideComponent />
</FluxComponent>
)
} })
const InsideComponent = React.createClass({
render() {
console.log(this.context, this.props)
return <div>Hello World</div>
}
})
const App = React.createClass({
render() {
return (
<FluxComponent flux={flux}>
<View />
</FluxComponent>
)
}
});
React.renderToString(<App />)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment