我使用MERN - https://github.com/Hashnode/mern-starter(反应,终极版,的WebPack,的NodeJS表达) 和组分反应声 - https://github.com/leoasis/react-sound的WebPack渲染: “没有定义窗口”
当我包括组分
import Sound from 'react-sound';
并尝试启动服务器,我从webpack服务器呈现错误"window is not defined"
。
但是,如果我评论这一行并启动服务器,一切都会好起来的。之后,我可以取消注释这一行,组件将工作,因为当服务器运行时,更改不会触发服务器呈现(只有正面呈现)。
如果我尝试
if (typeof window !== 'undefined') {
const Sound = require('react-sound');
}
而在渲染
render() {
return (
<div>
<Sound playStatus={Sound.status.STOPPED} url="" />
</div>
);
}
我对前面的渲染(之后的WebPack)ReferenceError: Sound is not defined
错误。
UPDATE:
如果我尝试(var
,不const
)
if (typeof window !== 'undefined') {
var Sound = require('react-sound');
}
我对前面的渲染TypeError: Cannot read property 'status' of undefined
错误。
限定内部的常量声音如果块限制了范围,以该块的内部。将var Sound = null;在if之外,然后在if中设置值。 – scrappedcola