- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Webpack 3.7.1 和 React 15.6.1,并且我正在尝试动态加载不同的组件。
module.exports = {
devServer: {
historyApiFallback: true
},
entry: {
app:"./src/index.js",
vendor: [
"axios",
"react",
"react-dom",
"react-redux",
"react-router",
"react-router-dom",
"redux"
]
},
output: {
path: __dirname + '/public/views',
filename: '[name].js',
chunkFilename: '[chunkhash].chunk.js',
publicPath: "/views/"
},
module: {
loaders: [
{
test: /\.js$/,
loader: "babel-loader",
exclude: [/node_modules/, /pdfmake.js$/]
},
{
test: /\.json$/,
loader: "json-loader"
}
]
},
plugins: [
new webpack.optimize.CommonsChunkPlugin({
name: "vendor",
minChunks: Infinity
}),
new webpack.NamedModulesPlugin(),
new HtmlWebpackPlugin({
filename: __dirname + "/views/index.ejs",
template: __dirname + "/views/template.ejs",
inject: 'body',
chunks: ['vendor', 'app'],
chunksSortMode: 'manual'
}),
new PreloadWebpackPlugin({
rel: "preload",
include: ["vendor", "app"]
}),
new webpack.optimize.OccurrenceOrderPlugin(),
]
};
import React from "react";
import ReactDOM from "react-dom";
import { Provider } from "react-redux";
import { createStore, applyMiddleware } from "redux";
import { BrowserRouter, Route, Switch } from "react-router-dom";
import promise from "redux-promise";
import reducers from "./reducers";
import AppInit from "./containers/appInit";
import ProfRegisteringModal from "./containers/modals/register_prof_explanation_modal";
const createStoreWithMiddleware = applyMiddleware(promise)(createStore);
function errorLoading(err) {
console.error("Dynamic page loading failed", err);
}
function loadRoute(cb) {
return module => cb(null, module.default);
}
console.log("testst");
ReactDOM.render(
<Provider store={createStoreWithMiddleware(reducers)}>
<AppInit>
<BrowserRouter>
<div style={{ height: "100%" }}>
<ProfRegisteringModal />
<Switch>
<Route
path="/inscription/:user"
getComponent={(location, callback) => {
import(
"./components/registering/registering_landing_page.js"
)
.then(loadRoute(cb))
.catch(errorLoading);
}}
/>
<Route
path="/inscription"
getComponent={(location, callback) => {
import(
"./components/registering/registering_landing_page.js"
)
.then(loadRoute(cb))
.catch(errorLoading);
}}
/>
<Route
path="/connexion"
getComponent={(location, callback) => {
import("./containers/registering/signing_in.js")
.then(loadRoute(cb))
.catch(errorLoading);
}}
/>
<Route
path="/equipe"
getComponent={(location, callback) => {
import("./components/team_pres.js")
.then(loadRoute(cb))
.catch(errorLoading);
}}
/>
<Route
path="/"
getComponent={(location, callback) => {
import("./containers/app_container.js")
.then(loadRoute(cb))
.catch(errorLoading);
}}
/>
</Switch>
</div>
</BrowserRouter>
</AppInit>
</Provider>,
document.querySelector(".root")
);
此文件已正确加载,因为我可以看到 console.log("test") 出现在我的控制台中。
访问任何路由时都没有正确加载任何组件。
最佳答案
我认为您的代码缺少的是触发更新的方法。我记得通过围绕 import()
Promise 创建一个包装器来解决这个问题。
// AsyncComponent.js
export default function wrapper(importComponent) {
class AsyncComponent extends React.Component {
constructor(props) {
super(props);
this.state = {
Comp: null
};
}
componentDidMount() {
importComponent()
.then(Comp => this.setState({
Comp
}))
.catch(err => this.setState({
error: err
}));
}
render() {
if(this.state.error) {
return <h2> Loading error
<button onClick={e => this.componentDidMount()}> Try again </button>
</h2>
}
const Comp = this.state.Comp;
return Comp ?
<Comp {...this.props} /> :
<div> Still Loading: You can add a spinner here </div>
}
}
return AsyncComponent;
}
// Routes.js
import AsyncComponent from './component/AsyncComponent';
const Users = AsyncComponent(() => import(/* webpackChunkName:"users" */ './Users'))
const Home = AsyncComponent(() => import(/* webpackChunkName:"home" */ './Home'))
const Equipe = AsyncComponent(() => import(/* webpackChunkName:"equipe" */ './Equipe'))
<Route path='/users' component={Users} />
<Route path='/equipe' component={Equipe} />
关于javascript - Webpack 和 React getComponent() 未异步加载组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48285264/
我想知道转换和游戏对象获取组件之间有什么区别。 我在这里查看了此资源:https://answers.unity.com/questions/1360282/what-is-the-differenc
我想实现this具有分页和排序功能的 JSF 页面。不幸的是,当使用 getComponent() 时,Netbeans 显示错误: cannot find symbol symbol: me
我只能在 java 中的等价物的任何地方找到它,但有谁知道 getComponent("name").value 的 EL 等价物是什么? 最佳答案 这是组件绑定(bind)到的任何内容......所
正如标题所说,GetComponent() 确实对性能有很大影响。 我问这个是因为我不喜欢这样做: public class Player : MonoBehaviour { PlayerSt
我尝试设置 dynamic routing使用 react 路由器和 webpack。 require.ensure 函数加载模块,但是 getComponent方法不渲染组件。 在我的示例中,But
我正在尝试编写一个简单的 GUI,这是我第一次使用 swing。我正在尝试对框架使用 getComponents() ,以便我可以访问其面板之一。但是,我收到该方法的错误“未找到符号”。我看过其他一些
我正在尝试制作一个类似于 UnityEngine 的 java 组件系统,并希望构建一个通用的 GetComponent() 方法。尝试返回找到的类型时我陷入困境 public T GetC
在类级别声明 var 组件还是稍后在代码中使用 GetComponent 引用它们更好? 例子: vitals = GetComponent(); weapon = GetComponent(); 或
所以我有一个非常基本的动画 ActionScript ,但我什至无法进入实际的动画部分,因为我遇到了这个错误: Assets/Player Controllers/PlayerController.c
我正在尝试创建一个定位系统。 当我点击一个骷髅敌人时,我希望能够从骷髅脚本中获取生命值和伤害,同样,当我点击另一个敌人时,我希望获得他们特定的生命值和损坏。 我能想到的唯一方法是使用 GetCompo
在 Unity 5.4/5.5 中,我遇到了一个问题,GetComponent 由于某种原因没有返回我的游戏对象的 CharacterController。在我重新启动 Unity 后,它再次工作。
我正在使用 C# 在 Unity 2017 中开发一个简单的游戏。 在我的关卡菜单中,我有一个文本对象,里面有一个按钮组件,并附有一个脚本。 这是脚本中当前的内容: using System.Coll
我正在使用 Container.getComponents() 获取存储在容器内的组件数组。然后,我正在修改这些组件之一(恰好是 JLabel),但更改未显示在 GUI 上。 所以我在想,也许该方法会
我有一个 XPage,它使用 JQuery 对话框和客户端验证来验证用户处理的输入。问题是,当我单击“添加”按钮时,客户端验证有效,但“无法”在服务器端找到这些字段的属性。当用户单击“打开对话框”按钮
我一直在调试另一个问题中的方法,尽管它已被修复,但评论让我相信我做的事情很糟糕,但没有人能够提出如何改进它的建议。 我正在编写的渲染引擎使用受 unity 启发的组件系统。 GetComponent<
我想编写一个 util 方法来获取给定游戏对象上的组件。看起来像这样…… public static MonoBehaviour FindAndAssignComponent(string n
我试图理解 GetComponent,但我很难弄清楚如何编写语法。我有两个脚本(SpawnBehaviour 和 SpotClicked)并想从“SpawnBehaviour 到 SpotClicke
我已经四处搜索,但就是无法让它工作。我想我只是不知道正确的语法,或者只是不太了解上下文。 我有一个包含公共(public)整数的 BombDrop 脚本。我得到它来使用 public static,但
使用以下代码,我能够从“SMG”获取脚本并将其应用于武器对象: weaponObject = GameObject.FindGameObjectWithTag(SMG).GetComponent();
我对JAVA仅有一般的了解,最近我想尝试统一。因此,有了YT教程(https://www.youtube.com/watch?v=V7YhzzfiW9c)和我开始的一些美好希望,Unity使用了C#,
我是一名优秀的程序员,十分优秀!