使用 Material-UI 的 withStyle 以及下面的示例,当将颜色更改为 时blue
,我在控制台上看到 HMR 正在更新模块,但更改实际上并没有出现在屏幕上,我必须重新加载页面。
如果我style
向 div 添加一个属性并将颜色设置为blue
那里,它会正确显示在屏幕上。
const styles = () => ({
root: {
color: 'black',
},
});
class Test extends React.Component {
render() {
const { classes } = this.props;
return (
<div calssName={classes.root}>
This is a test
</div>
)
}
}
const select = function (state) {
return state;
};
export default compose(
withStyles(styles),
connect(select),
)(Test);
我想我没有完全理解这withStyles
件事,我的猜测是配置错误,所以这是我的webpack.config.dev.js
:
const Path = require('path');
const Webpack = require('webpack');
const ExtractTextPlugin = require('extract-text-webpack-plugin');
module.exports = {
devtool: '#eval-source-map',
entry: [
'babel-polyfill',
Path.join(__dirname, '../../app/application/delegate'),
],
output: {
filename: 'bundle.js',
path: Path.join(__dirname, '../public/'),
publicPath: '/',
},
module: {
loaders: [
{
test: /\.jsx$|\.js$/,
exclude: /node_modules/,
loader: 'babel-loader',
query: {
presets: ['es2015', 'react', 'stage-2'],
plugins: [['react-transform', {
transforms: [{
imports: ['react'],
locals: ['module'],
transform: 'react-transform-hmr',
}],
}]],
},
},
{
test: /\.css$/,
use: ['css-hot-loader'].concat(ExtractTextPlugin.extract({
fallback: 'style-loader',
use: 'css-loader',
})),
},
{
test: /\.json$/,
loader: 'json',
},
],
},
plugins: [
new Webpack.DefinePlugin({
'process.env': {
NODE_ENV: JSON.stringify('development'),
PLATFORM_ENV: JSON.stringify('web'),
},
}),
new Webpack.NoEmitOnErrorsPlugin(),
new ExtractTextPlugin('styles.css'),
],
resolve: {
extensions: ['.js', '.jsx', '.json'],
},
};