javascript - React Redux 用于 react 路由器导航的加载栏

标签 javascript reactjs react-router material-ui

所以我想实现一个像 github 一样的加载栏。它应该在点击另一个页面时开始加载,并在到达时完成。

我正在使用material-ui和加载器react-progress-bar-plus。

我尝试使用react-router的生命周期钩子(Hook),即componentDidUpdate和componentWillReceiveProps来将状态设置为完成。

首先,我将 onTouchTap 函数附加到菜单项,但它只是不想正常工作。

实现此功能的最佳方法是什么?

最佳答案

您可以使用router-resolverreact-progress-bar-plus 。 看这个例子: http://minhtranite.github.io/router-resolver/ex-4

使用示例:

// app.js
//...
import {RouterResolver} from 'router-resolver';
//...
const routes = {
  path: '/',
  component: App,
  indexRoute: {
    component: require('components/pages/PageHome')
  },
  childRoutes: [
    require('./routes/Example1Route'),
    require('./routes/Example2Route'),
    require('./routes/Example3Route')
  ]
};

const renderInitial = () => {
  return <div>Loading...</div>;
};

const onError = (error) => {
  console.log('Error: ', error);
};

ReactDOM.render(
  <Router routes={routes}
    history={history}
    render={props => (
      <RouterResolver {...props} renderInitial={renderInitial} onError={onError}/>
    )}/>,
  document.getElementById('app')
);

还有:

// components/pages/PageExample1.js
import React from 'react';
import Document from 'components/common/Document';

class PageExample1 extends React.Component {
  static resolve() {
    return new Promise((resolve) => {
      setTimeout(() => {
        resolve('simple data');
      }, 2000);
    });
  };

  static propTypes = {
    response: React.PropTypes.string.isRequired
  };

  render() {
    return (
      <Document title='Example1 | Router resolver' className='page-ex-1'>
        <h1>Example 1: {this.props.response}</h1>
      </Document>
    );
  }
}

export default PageExample1;

关于javascript - React Redux 用于 react 路由器导航的加载栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37732034/

相关文章:

javascript - jquery 和 javascript 中 i++ 的问题

javascript - 当作为字符串传递时使用 '+' 作为实际的 + 运算符 - React

reactjs - 如何自动对焦 react 文本区域?

javascript - React 不会在路由参数更改或查询更改时重新加载组件数据

JavaScript "animation"没有像我预期的那样工作

javascript - 处理 POST api 和互联网连接丢失的良好做法

javascript - 在NodeJS中,如何从不同字段名的mongodb输出结果?

javascript - 如何使用 React Router v4(侧边栏)创建多个路由?

javascript - React Router Link 不适用于 LeafletJS

react-router - 为什么我的 catch-all 路由在我的 Switch 中不起作用?