Javascript 在CSHTML中呈现传输的ES6
我有 Tutorial.jsxJavascript 在CSHTML中呈现传输的ES6,javascript,reactjs,jsx,Javascript,Reactjs,Jsx,我有 Tutorial.jsx class ShoppingList extends React.Component { render() { return (<div>Milk</div>); } } export default ShoppingList; 在我的CMD提示符中,当我运行webpack-w时,所有内容都是绿色的,我看到bundle.js文件出现在React文件夹中它应该出现的位置。打开它,我明白了 ... var S
class ShoppingList extends React.Component {
render() {
return (<div>Milk</div>);
}
}
export default ShoppingList;
在我的CMD提示符中,当我运行webpack-w
时,所有内容都是绿色的,我看到bundle.js文件出现在React文件夹中它应该出现的位置。打开它,我明白了
...
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>
在这里渲染
....
render(“ShoppingList”,document.getElementById(“content1”);
render(ShoppingList,document.getElementById(“content1”);
render(,document.getElementById(“content1”);
有人能告诉我吗
,这在我看来是错误的
谢谢。您的输入文件中应该包含以下内容:
import ShoppingList from 'path-to/ShoppingList';
ReactDOM.render(<ShoppingList />, document.getElementById("content1"));
在定义组件的文件中
并使用普通javascript而不是JSX语法:
ReactDOM.render(React.createElement(ShoppingList), document.getElementById("content1"))
谢谢@lorefnon,这确实有效。但我仍然不明白的是,如果我在入口点文件(main.js)中调用ReactDOM.render,这意味着我只能有一个ShoppingList实例,不是吗?我想做的是,当我单击CSHTML页面中的按钮时,创建另一个购物列表。我遗漏了什么吗?如果您可以让React管理整个DOM,包括按钮以及包含ShoppingList的容器,那就更好了,但是如果这不可行,我已经用代码更新了我的答案,以从全局范围呈现React组件。非常感谢,答案是有意义的,而且很有效。我怀疑这是一个出口问题,这让我很难过,所以我尝试了网页包出口选项,但收效甚微。我从未尝试将ShoppingList添加到window对象。
window.ShoppingList = ShoppingList
ReactDOM.render(React.createElement(ShoppingList), document.getElementById("content1"))