Javascript 未捕获的TypeError:s.map不是ReactJs中的函数
我试着使用示例,下面是代码:Javascript 未捕获的TypeError:s.map不是ReactJs中的函数,javascript,reactjs,Javascript,Reactjs,我试着使用示例,下面是代码: class UsersTable extends React.Component { constructor(props) { super(props); this.state = { data: [] }; }; render() { return ( <div>
class UsersTable extends React.Component {
constructor(props) {
super(props);
this.state = {
data: []
};
};
render() {
return (
<div>
<ReactTable
data={this.state.data}
columns={[
{
Header: "ID",
accessor: "id"
},
{
Header: "Name",
accessor: "name"
}
]}
onFetchData={(state, instance) => {
let request = new XMLHttpRequest();
request.open("GET", '/get/roles', true);
request.send();
request.onload = function() {
if (request.status === 200) {
let response = JSON.parse(request.responseText);
let responseInfo = JSON.stringify(response);
this.setState({
data: responseInfo
})
}
}.bind(this);
}}
defaultPageSize={5}
className="-striped -highlight"
manual
/>
</div>
);
}
}
但当我运行浏览器时,表格没有打印任何行,但我找不到问题所在:
Uncaught TypeError: s.map is not a function
at t.value (react-table.js:6)
at t.value (react-table.js:6)
at p.updateComponent (react-dom.min.js:13)
at p.receiveComponent (react-dom.min.js:13)
...
您正在将状态中的数据设置为字符串:
...
let responseInfo = JSON.stringify(response)
this.setState({
data: responseInfo
})
...
…但是,reactable需要一个数组
字符串没有映射方法,这很可能是出现错误的原因
如果是数组,则可以使用响应:
...
let response = JSON.parse(request.responseText)
this.setState({
data: response
})
...
我建议您检查所有脚本、跨源策略等。
...
let response = JSON.parse(request.responseText)
this.setState({
data: response
})
...