Reactjs 控制台中的Webpack崩溃:setState获取要更新的状态变量对象或返回状态变量对象的函数
我用CreateReact应用程序创建了应用程序,但我已经将其迁移到WebpackExpress样板文件中,现在我在控制台中收到此错误消息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
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
组件吗?是的,请查看对象或数组的IDres.data
reloadData() {
console.log("EvensList mount");
axios.get('/EventsList')
.then(res => {
console.log(res);
this.setState({data: res.data});
});
}