Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.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
Reactjs 控制台中的Webpack崩溃:setState获取要更新的状态变量对象或返回状态变量对象的函数_Reactjs_Webpack - Fatal编程技术网

Reactjs 控制台中的Webpack崩溃:setState获取要更新的状态变量对象或返回状态变量对象的函数

Reactjs 控制台中的Webpack崩溃:setState获取要更新的状态变量对象或返回状态变量对象的函数,reactjs,webpack,Reactjs,Webpack,我用CreateReact应用程序创建了应用程序,但我已经将其迁移到WebpackExpress样板文件中,现在我在控制台中收到此错误消息 invariant.js?4599:44 Uncaught (in promise) Error: setState(...): takes an object of state variables to update or a function which returns an object of state variables. at invar

我用CreateReact应用程序创建了应用程序,但我已经将其迁移到WebpackExpress样板文件中,现在我在控制台中收到此错误消息

invariant.js?4599:44 Uncaught (in promise) Error: setState(...): takes an object of state variables to update or a function which returns an object of state variables.
    at invariant (eval at <anonymous> (main.js:717), <anonymous>:44:15)
    at FilesList.ReactComponent.setState (eval at <anonymous> (main.js:2032), <anonymous>:63:111)
    at eval (eval at <anonymous> (main.js:1270), <anonymous>:114:24)
    at <anonymous>
这是我的网页包配置文件:

module.exports = {
    devtool: 'eval-source-map',
    entry: [
        'webpack-hot-middleware/client?reload=true',
        path.join(__dirname, 'app/main.js')
    ],
    output: {
        path: path.join(__dirname, '/dist/'),
        filename: '[name].js',
        publicPath: '/'
    },
    plugins: [
        new HtmlWebpackPlugin({
            template: 'app/index.tpl.html',
            inject: 'body',
            filename: 'index.html'
        }),
        new webpack.optimize.OccurrenceOrderPlugin(),
        new webpack.HotModuleReplacementPlugin(),
        new webpack.NoErrorsPlugin(),
        new webpack.DefinePlugin({
            'process.env.NODE_ENV': JSON.stringify('development')
        })
    ],
    module: {
        loaders: [{
            test: /\.jsx?$/,
            exclude: /node_modules/,
            loader: 'babel-loader',
            query: {
                "presets": ["react", "es2015", "stage-0", "react-hmre"]
            }
        },
            {
                test: /\.woff(2)?(\?v=[0-9]\.[0-9]\.[0-9])?$/,
                loader: "url-loader?limit=10000&mimetype=application/font-woff"
            },
            {
                test: /\.(ttf|eot|svg)(\?v=[0-9]\.[0-9]\.[0-9])?$/,
                loader: "file-loader"
            }
            ,  {
                test: /\.json$/,
                use: 'json-loader'
            },
            {
                test: /\.css$/,
                use: ['style-loader', 'css-loader']
            }
            , {test: /\.svg$/, loader: 'svg-loader?{png:{scale:2}}'}]
    }
};
错误的原因可能是什么?由于请求过帐,项目中还有一个文件:

export default class EventsList extends Component {
    constructor(props) {
        super(props);
        this.state = {};
    }
    reloadData() {
        console.log("EvensList mount");
        axios.get('/EventsList')
            .then(res => {
                console.log(res);
                this.setState(res.data);
            });
    } 
    // some other stuff
}

如果
res.data
是一个对象,那么您可以

reloadData() {
    console.log("EvensList mount");
    axios.get('/EventsList')
        .then(res => {
            console.log(res);
            this.setState({...res.data});
        });
}
但是,如果是数组,则需要指定一个键,然后将状态设置为

reloadData() {
    console.log("EvensList mount");
    axios.get('/EventsList')
        .then(res => {
            console.log(res);
            this.setState({data: res.data});
        });
}

您可以发布
FilesList
组件吗?是的,请查看对象或数组的ID
res.data
reloadData() {
    console.log("EvensList mount");
    axios.get('/EventsList')
        .then(res => {
            console.log(res);
            this.setState({data: res.data});
        });
}