Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 未捕获的TypeError:s.map不是ReactJs中的函数_Javascript_Reactjs - Fatal编程技术网

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
})

...