项目作者: axetroy

项目描述 :
react component for rend async data
高级语言: JavaScript
项目地址: git://github.com/axetroy/react-async.git
创建时间: 2017-05-04T17:34:29Z
项目社区:https://github.com/axetroy/react-async

开源协议:MIT License

下载


react-async

Greenkeeper badge

render the component with a async promise.

Online Demo

Installation

  1. npm install @axetroy/react-async

Usage

  1. import React from 'react';
  2. import { render } from 'react-dom';
  3. import Async, {
  4. Resolve,
  5. Reject,
  6. Finally,
  7. Pending
  8. } from '@axetroy/react-async';
  9. const element = document.createElement('div');
  10. document.body.appendChild(element);
  11. class App extends React.Component {
  12. constructor(props) {
  13. super(props);
  14. this.state = {
  15. promise: this.createPromise()
  16. };
  17. }
  18. createPromise() {
  19. return new Promise(function(resolve, reject) {
  20. setTimeout(() => {
  21. if (Math.random() > 0.5) {
  22. resolve();
  23. } else {
  24. reject();
  25. }
  26. }, 1000);
  27. });
  28. }
  29. render() {
  30. return (
  31. <div>
  32. <button
  33. type="button"
  34. onClick={() => {
  35. this.setState({ promise: this.createPromise() });
  36. }}
  37. >
  38. Click and refresh
  39. </button>
  40. <Async await={this.state.promise}>
  41. <div>async header, i will always here</div>
  42. {component => {
  43. return (
  44. <div>
  45. async status: {component.state.status}
  46. </div>
  47. );
  48. }}
  49. <Pending>promise pending</Pending>
  50. <Resolve>
  51. promise resolve block
  52. </Resolve>
  53. <Reject>
  54. promise reject block
  55. </Reject>
  56. <Finally>
  57. promise finally block
  58. </Finally>
  59. </Async>
  60. </div>
  61. );
  62. }
  63. }
  64. render(<App ></App>, element);

Components

  • Async
    • props
      • await
  • Pending
  • Resolve
  • Reject
  • Finally

Run the Demo

  1. git clone https://github.com/axetroy/react-async.git
  2. yarn
  3. yarn start

License

The MIT License