Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在状态更新时响应刷新并非所有元素_Javascript_Reactjs_Webpack_React Router_React Hot Loader - Fatal编程技术网

Javascript 在状态更新时响应刷新并非所有元素

Javascript 在状态更新时响应刷新并非所有元素,javascript,reactjs,webpack,react-router,react-hot-loader,Javascript,Reactjs,Webpack,React Router,React Hot Loader,你好! 也许这个问题不好,但我找不到答案。 我有一个React应用程序,它面向json对象,从外部动态变化 来自导航的代码: import MultiTable from '../multi'; import MuiThemeProvider from 'material-ui/styles/MuiThemeProvider'; import Clock from '../clock' let routes = [ { exact: true,

你好! 也许这个问题不好,但我找不到答案。 我有一个React应用程序,它面向json对象,从外部动态变化

来自导航的代码:

   import MultiTable from '../multi';
   import MuiThemeProvider from 'material-ui/styles/MuiThemeProvider';
   import Clock from '../clock'

   let routes = [
     {
       exact: true,
       path: '/Main',
       main: () => <Main />
     },
     {
       path: '/MultiTable',
       main: () => <MultiClock />
     }
   ];

   function requireAll(requireContext) {
     return requireContext.keys().map(requireContext);
   }

   const Configs = requireAll(require.context('../../../src/configs', false, /.json$/));
   const Files = requireAll(require.context('../../../src/data', false, /.json$/));

   const Multi = () => (
     <MuiThemeProvider>
       <MultiTable allData={[Files, Configs]}/>
     </MuiThemeProvider>
   );

   const MultiClock = () => (
     <div>
       <Clock/>
       <Multi/>
     </div>
   );

export default class Nav extends React.Component {
render() {
    return (
      <Router history='vah'>
        <div style={{display: 'flex'}} ref="nav">
          <Drawer
            docked={true}
            width={200}
          >
            <Link to='/Main' key="main">Main</Link>
            <Link to='/MultiTable' key="multi">WithClock</Link>
          </Drawer>
          <div style={{flex: 1}}>
            {routes.map((route, index) => (
              <Route
                key={index}
                path={route.path}
                exact={route.exact}
                component={route.main}
              />
            ))}
          </div>
        </div>
      </Router>
    );
  }
}
{
  "presets": [
    ["es2015", {"modules": false}],
    "stage-2",
    "react"
  ],
  "plugins": [
    "react-hot-loader/babel"
  ]
}
.babelrc中:

   import MultiTable from '../multi';
   import MuiThemeProvider from 'material-ui/styles/MuiThemeProvider';
   import Clock from '../clock'

   let routes = [
     {
       exact: true,
       path: '/Main',
       main: () => <Main />
     },
     {
       path: '/MultiTable',
       main: () => <MultiClock />
     }
   ];

   function requireAll(requireContext) {
     return requireContext.keys().map(requireContext);
   }

   const Configs = requireAll(require.context('../../../src/configs', false, /.json$/));
   const Files = requireAll(require.context('../../../src/data', false, /.json$/));

   const Multi = () => (
     <MuiThemeProvider>
       <MultiTable allData={[Files, Configs]}/>
     </MuiThemeProvider>
   );

   const MultiClock = () => (
     <div>
       <Clock/>
       <Multi/>
     </div>
   );

export default class Nav extends React.Component {
render() {
    return (
      <Router history='vah'>
        <div style={{display: 'flex'}} ref="nav">
          <Drawer
            docked={true}
            width={200}
          >
            <Link to='/Main' key="main">Main</Link>
            <Link to='/MultiTable' key="multi">WithClock</Link>
          </Drawer>
          <div style={{flex: 1}}>
            {routes.map((route, index) => (
              <Route
                key={index}
                path={route.path}
                exact={route.exact}
                component={route.main}
              />
            ))}
          </div>
        </div>
      </Router>
    );
  }
}
{
  "presets": [
    ["es2015", {"modules": false}],
    "stage-2",
    "react"
  ],
  "plugins": [
    "react-hot-loader/babel"
  ]
}
主条目/app/index.js:

const path = require('path');
const webpack = require('webpack');

module.exports = {
  entry: [
    'babel-polyfill',
    'react-hot-loader/patch',
    'webpack-dev-server/client?http://192.168.1.33:3000',
    'webpack/hot/only-dev-server',
    './app/index.js'
  ],
  output: {
    filename: 'bundle.js',
    path: path.resolve(__dirname, '../dist'),
    publicPath: '/static/'
  },
  module: {
    rules: [
      {test: /\.jsx?$/, use: ['babel-loader'], exclude: /node_modules/},
      {test: /\.(less|css)$/, loader: 'style-loader!css-loader!less-loader'},
      {test: /\.(xml)$/, loader: 'xml-loader'},
      {test: /\.(svg|png|jpg|jpeg|gif|ico|eot|otf|ttf|woff|woff2)$/, loader: 'file-loader'}
    ],
  },
  plugins: [
    new webpack.HotModuleReplacementPlugin(),
    new webpack.NamedModulesPlugin(),
    new webpack.NoEmitOnErrorsPlugin(),
  ],
  devServer: {
    host: '192.168.1.33',
    port: 3000,
    historyApiFallback: true,
    hot: true,
    compress: true
  }
};
import React from 'react';
import ReactDOM  from 'react-dom'
import {AppContainer} from 'react-hot-loader'
import injectTapEventPlugin from 'react-tap-event-plugin';
injectTapEventPlugin();
import MuiThemeProvider from 'material-ui/styles/MuiThemeProvider';
import Nav from './navigation/nav';
import './index.less';

const rootEl = document.getElementById('root');
const render = Component => {
  ReactDOM.render(
    <AppContainer>
      <MuiThemeProvider>
        <Component />
      </MuiThemeProvider>
    </AppContainer>,
    rootEl
  )
};

render(Nav);

if (module.hot) {
  module.hot.accept('./navigation/nav', () => {
    render(Nav)
  })
}
从“React”导入React;
从“react dom”导入react dom
从“react hot loader”导入{AppContainer}
从“react-tap事件插件”导入injectTapEventPlugin;
injectTapEventPlugin();
从“材质ui/styles/MuiThemeProvider”导入MuiThemeProvider;
从“./navigation/Nav”导入导航;
导入“./index.less”;
const rootEl=document.getElementById('root');
常量呈现=组件=>{
ReactDOM.render(
,
罗特尔
)
};
渲染(导航);
如果(模块热){
module.hot.accept('./导航/导航',()=>{
渲染(导航)
})
}

也许我真的在配置中犯了一些错误,并且没有完全理解这些技术必须如何工作。热加载程序+网页包+路由器

您的问题仍然不太清楚,特别是这部分:
时钟-当文件或配置中的某些内容发生更改时-时钟也会刷新。
您到底想要什么行为?@NagarajTantri添加了gif示例来说明它的外观。和更新问题您能提供使用webpack热重新加载的过程吗?我的意思是,您是否使用了webpack热重新加载的CLI或使用了配置文件来执行此操作?还向我们展示了网页包配置。如果您可以提供一个示例github项目,那就更好了,因为这个问题很特殊,需要理解webpack热重新加载/webpackconfigs@NagarajTantri,用我的代码填充了问题(很抱歉,无法提供github项目)。正如你所看到的,我正在使用手工制作的网页配置。我想我的路由可能有问题吗?基本错误报告,如果你可以在chrome中检查你的开发控制台:你的问题仍然不是很清楚,特别是这部分:
Clock-当文件或配置中的某些内容发生更改时-Clock也会刷新。
你到底想要什么行为?@NagarajTantri添加了一个gif示例来说明它的外观。和更新问题您能提供使用webpack热重新加载的过程吗?我的意思是,您是否使用了webpack热重新加载的CLI或使用了配置文件来执行此操作?还向我们展示了网页包配置。如果您可以提供一个示例github项目,那就更好了,因为这个问题很特殊,需要理解webpack热重新加载/webpackconfigs@NagarajTantri,用我的代码填充了问题(很抱歉,无法提供github项目)。正如你所看到的,我正在使用手工制作的网页配置。我想我的路由可能有问题?基本错误报告,如果您可以在chrome中检查您的开发控制台: