是否有更简单的方法Router从组件访问对象来执行调用transitionTo()而不使用Navigation mixin?这是ES6组件.目前在按钮点击等事件上,我一直在写这样的事情:
class Button extends React.Component {
handleClick(e) {
e.preventDefault();
var router = this._reactInternalInstance._context.router;
router.transitionTo('/search');
}
render() {
return (
<button onClick={this.handleClick.bind(this)}>
{this.props.children}
</button>
);
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个节点应用程序,它使用react-router来呈现服务器端的React视图.我的问题是我require.ensure在客户端使用代码拆分,但在编译服务器端代码时不希望代码拆分.这是我的webpack配置:
{
entry: path.join(__dirname, '../server/app.js'),
target: 'node',
output: {
path: './',
filename: 'server.js'
},
module: {
loaders: [
{ test: /\.js$/, loader: 'babel', exclude: /node_modules/ },
{ test: /\.hbs$/, loader: 'handlebars-loader', include: /client/ }
]
},
externals: nodeModules
}
Run Code Online (Sandbox Code Playgroud)
当我运行它时,我得到server.js,1.server.js,2.server.js等.我宁愿只有一个server.js文件.
在每个路径文件的顶部我有:
if (typeof require.ensure !== 'function') require.ensure = (d, c) => c(require);
Run Code Online (Sandbox Code Playgroud)
当我require('babel/register')在开发中使用时,它有用,但我宁愿有一个用于生产的编译文件.