react_redurx 0.1.0  react_redurx: ^0.1.0 copied to clipboard
react_redurx: ^0.1.0 copied to clipboard
React bindings for ReduRx.
example/main.dart
import 'dart:html' show querySelector;
import 'package:react/react.dart';
import 'package:react/react_client.dart' show setClientConfiguration;
import 'package:react/react_client/react_interop.dart';
import 'package:react/react_dom.dart' show render;
import 'package:react_redurx/react_redurx.dart';
import 'package:redurx/redurx.dart';
final app = registerComponent(() => App());
final foo = registerComponent(() => Foo());
class State {
  State(this.count);
  final int count;
  @override
  String toString() => '{count: $count}';
}
class Increment implements Action<State> {
  State reduce(State state) => State(state.count + 1);
}
class Foo extends Component {
  @override
  ReactElement render() => div({}, [
        props['value'],
        button({'onClick': (e) => props['increment']()}, '+')
      ]);
}
class App extends Component {
  @override
  ReactElement render() => connect<State>(
        (state) => {'value': state.count},
        (dispatch) => {'increment': () => dispatch(Increment())},
      )(foo);
}
void main() {
  setClientConfiguration();
  final store = Store<State>(State(0));
  final provider = registerComponent(() => Provider<State>(store: store));
  store.stream.listen(print);
  render(provider({}, app({})), querySelector('#root'));
}