Skip to content

Instantly share code, notes, and snippets.

@naartjie
Forked from trueadm/example-c.js
Created November 12, 2017 21:13
Show Gist options
  • Select an option

  • Save naartjie/aa3f2e5f80721ca288025aa6f1f48b85 to your computer and use it in GitHub Desktop.

Select an option

Save naartjie/aa3f2e5f80721ca288025aa6f1f48b85 to your computer and use it in GitHub Desktop.
// Option A:
const React = require('react');
const counterState = React.createState();
const counterReducer = (action, state) => {
switch (action) {
case "INCREMENT": {
return React.updateState({counter: state.counter + 1});
}
}
};
function CounterComponent(props) {
return counterState({
initialState: () => ({
counter: 0,
divRef: React.createRef(),
}),
didUpdate: state => {
state.divRef.style.color = props.color;
},
reducer: counterReducer,
render(state, reduce) {
return (
<div ref={state.divRef} onClick={() => reduce("INCREMENT"))}>
Count: {state.counter}
</div>
);
}
});
}
module.exports = CounterComponent;
// Option B:
const React = require('react');
const counterState = React.createStateReducer((action, state) => {
switch (action) {
case "INCREMENT": {
return React.updateState({counter: state.counter + 1});
}
}
});
function CounterComponent(props) {
return counterState({
initialState: () => ({
counter: 0,
divRef: React.createRef(),
}),
didUpdate: state => {
state.divRef.style.color = props.color;
},
render(state, reduce) {
return (
<div ref={state.divRef} onClick={() => reduce("INCREMENT"))}>
Count: {state.counter}
</div>
);
}
});
}
module.exports = CounterComponent;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment