react_redurx 0.1.0 copy "react_redurx: ^0.1.0" to clipboard
react_redurx: ^0.1.0 copied to clipboard

React bindings for ReduRx.

React-ReduRx #

React bindings for ReduRx.

Usage #

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'));
}
0
likes
25
pub points
0%
popularity

Publisher

unverified uploader

React bindings for ReduRx.

Repository (GitHub)
View/report issues

License

BSD-3-Clause (LICENSE)

Dependencies

collection, react, redurx

More

Packages that depend on react_redurx