Skip to content

Instantly share code, notes, and snippets.

@jefflau
Last active May 16, 2017 09:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jefflau/8225662d2a4ce99633f8351631b15358 to your computer and use it in GitHub Desktop.
Save jefflau/8225662d2a4ce99633f8351631b15358 to your computer and use it in GitHub Desktop.
Redax
//Redax.js
export default class Redax {
constructor(data, render, middleware) {
this.db = data
this.render = render
this.middleware = middleware
}
update(newData){
let data = this.middleware.reduce((state, middleware) => middleware(state), newData)
this.db = data;
this.render()
}
}
//App.js
import React from 'react'
import Redax from './Redax'
function RedaxImmutableLogger (state) {
console.log('currentState')
console.log(state.toJS())
return state
}
let middleware = [RedaxImmutableLogger]
const app = new Redax(
Immutable.fromJS(initialData),
() => ReactDOM.render(<Main />, document.getElementById('root')),
middleware
)
export default app
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment