gpt4 book ai didi

javascript - react 未捕获类型错误 : Cannot read property '__reactAutoBindMap' of undefined

转载 作者:行者123 更新时间:2023-11-30 16:20:21 25 4
gpt4 key购买 nike

我正在尝试使用 reactjs 在 html 表中显示一些数据。但我不断得到错误未捕获类型错误:无法读取未定义的属性“__reactAutoBindMap”。我无法弄清楚我的代码有什么问题。

<!DOCTYPE html>
<html>
<head>
<title>React Flux</title>
<script src="https://fb.me/react-0.13.3.js"></script>
<script src="https://fb.me/JSXTransformer-0.13.3.js"></script>
<script src="http://code.jquery.com/jquery-2.1.4.min.js"></script>
</head>
<body>

<div id="component" style="color:red"></div>

<script type="text/jsx">


//
// create component
//
var Table = React.createClass({

render: function render() {
var _self = this;

var thead = React.DOM.thead({},
React.DOM.tr({},
this.props.cols.map(function (col) {
return React.DOM.th({}, col);
})));

var tbody = this.props.rows.map(function (row) {
return React.DOM.tr({},
_self.props.cols.map(function (col) {
return React.DOM.td({}, row[col] || "");
}));
});

return React.DOM.table({}, [thead, tbody]);
}

});

var container = document.querySelector("#container");

var tableModel = {
cols: ["Name", "Age"],
rows: [{
"Name": "Chase",
"Age": "27"
}],

}

React.render(Table(tableModel), container);



</script>
</body>
</html>

最佳答案

我认为您遇到的主要问题是您的 Table 组件是在页面的全局范围内定义的,这意味着您的 this 将是未定义的,因为我们重新处于“严格”模式。其次,您直接将 Table 组件作为函数调用,而不是使用 JSX。渲染时,React 假定 this 的特定值,但在本例中它是 undefined,因此您会看到错误。

因此,这里的第一步是将渲染函数更改为如下所示:

React.render(<Table cols={tableModel.cols} rows={tableModel.rows} />, container);

最后,我想你在尝试上面的方法后会发现你的目标容器不太对。它正在寻找 ID 为 container 的元素,但您的 html 中不存在该元素,因此您也需要对其进行更改。

关于javascript - react 未捕获类型错误 : Cannot read property '__reactAutoBindMap' of undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34840203/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com