[英]Render Transpiled ES6 in CSHTML
我有
Tutorial.jsx
class ShoppingList extends React.Component {
render() {
return (<div>Milk</div>);
}
}
export default ShoppingList;
webpack.config.js
module.exports = {
...
output: './React/bundle.js',
...,
module: {
loaders: [
{
test: /\.jsx?$/,
exclude: /node_modules/,
loader: "babel-loader",
query: {
presets: ['es2015', 'react'],
}
}
]
}
}
在我的CMD提示符下,当我运行webpack -w
所有内容均为绿色,并且在React文件夹中看到我的bundle.js文件出现在应有的位置。 打开它,我看到了
...
var ShoppingList = function (_React$Component) {
...
}
...
所以看起来一切都很好。
现在,我想在_Layout.cshtml文件中呈现ShoppingList。
问题:我该怎么做? 我已经尝试了下面的所有方法,并且始终因无效的参数类型或传入错误的元素等而得到React错误。 我的CSHTML在下面。
<div id="content1">render here</div>
....
<script src="~/React/bundle.js"></script>
<script>
ReactDOM.render("ShoppingList", document.getElementById("content1"));
ReactDOM.render(ShoppingList, document.getElementById("content1"));
ReactDOM.render(<ShoppingList />, document.getElementById("content1"));
</script>
有人可以让我知道是否
到目前为止,我得到的最好结果是在DOM资源管理器中看到ShoppingList,但实际上没有呈现HTML。 出来了<shoppinglist ...></shoppinglist>
,这对我来说似乎是错误的。
谢谢。
您应该在输入文件中包含以下内容:
import ShoppingList from 'path-to/ShoppingList';
ReactDOM.render(<ShoppingList />, document.getElementById("content1"));
在CSHTML页面中,不需要其他脚本标签。
您的原始示例无效,因为:
<ShoppingList />
),然后才能在HTML页面中使用。 如果确实需要在CSHTML页面中使用组件,则可以使该组件成为全局组件:
window.ShoppingList = ShoppingList
在定义组件的文件中。
并使用香草javascript而不是JSX语法:
ReactDOM.render(React.createElement(ShoppingList), document.getElementById("content1"))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.