解决方式&原因: 参照 antd 官方 demo,只在 edit 为 true 时触发 oncell,td 未非编辑状态时不必传参;
tips: react antd table 20191217
解决方式&原因: 服务启动机器与访问页面机器时间不对应;代码中判断时间差大于一定频率才刷新;
tips: 基础 算法 canvas chart 20191224
解决方式&原因:
<iframe
<!-- onLoad={() => {
const obj = ReactDOM.findDOMNode(this);
this.setState({
"iFrameHeight": obj.contentWindow.document.body.scrollHeight + 'px'
});
}}
ref="iframe"
src="/courses.html"
width="100%"
height={this.state.iFrameHeight}
scrolling="no"
frameBorder="0" -->
title='resg'
srcDoc={userManual}
style={{width:'100%',boder:0,height:'100%'}}
sandbox="allow-same-origin allow-scripts allow-popups allow-forms"
scrolling="auto"
/>
乱码:vs 切换至 gb2313 保存,再切换回 utf-8,保存;
tips:react iframe html 乱码 编码错误 20191231
解决方式&原因: column 中 fixed 列添加 width 属性
tips: antd table 20191231
解决方式&原因:npm i npm -g // 升级 npm 版本
tips: npm sha-xxx
原因:网不行;electron_mirror 配置不对; 解决方式: 1.拷贝 zip、txt 至路径:c:\users\xx\appdata\local\electron\cache 2.npm config set electron_mirror "http://xxx"
tips: electron npm
解决方式&原因:npm cache clean -f; 删除 package-lock.json
tips: npm
解决方式&原因:webpack 代理
module.exports = {
//...
devServer: {
proxy: {
'/api': 'http://localhost:3000',
},
proxy: {
'/api': {
target: 'http://localhost:3000',
bypass: function(req, res, proxyOptions) {
if (req.headers.accept.indexOf('html') !== -1) {
console.log('Skipping proxy for browser request.');
return '/index.html';
}
}
}
},
proxy: [{
context: ['/auth', '/api'],
target: 'http://localhost:3000',
},{
context: ['/variableManager'],
target: 'ws://localhost:3000', // socketIO 代理
}]
}
}
tips: webpack 代理
解决方式&原因:treeData 数据中有标签,导致数据被判为 obj,删除相关标签,用字符串代替
tips: react 数据
解决方式:
- 用全局配置的 webpack 发布时,修改全局的 webpack.cmd 中 node 后面添加参数 --max_old_space_size=2048 或者更大(我没试过)
- 用局部的 webpack 发布时,修改本地的./node_modules/.bin/webpack.cmd node 后面添加参数 --max_old_space_size=2048 或者更大
- bc 前端 webpack 打包内存溢出以前出现过,因为 build 的时候用了--process --color --ode production,现在 BC 前端不报错是因为把 webpack 后面的参数去掉了,如果加上,应该也同样会报内存溢出的错误
- 模块按需引入;
- 删除多余的 npm 包
tips: webpack 打包 内存溢出
设置环境变量:NODEJS_ORG_MIRROR=http://repo.hirain.net/...../node-dist/ 先全局安装 node-gyp, npm install node-gyp 再安装 gyp 头文件, node-gyp install 还有一个环境变量也设置上:IOJS_ORG_MIRROR=http://repo...../iojs/
tips: node-gyp 环境搭建
- 原因:端口被占用
- 解决方式:
- 找到占用端口的进程
lsof -i:端口号 // 输出:command:进程名称 pid:进程标识符 netstat -tunlp|grep 端口号 // 输出末尾 22283/node 表示占用端口的进程标识符合进程名称
- 杀掉进程
kill -9 PID
- 重启服务
通过取消 webpack devserver port 配置后,系统可自动分配端口 tips:webpack node 端口
- 原因:缺少或 url-loader 、 file-loader 配置不完善
- 解决方式:引入相关 loader
处理后需要重启 webpack tips:webpack loader
- 原因:引用重复(引用中有 e , 与方法中 e 冲突)
- 解决方式: 改掉冲突的 e 的名称 tips:重复引用 import
- 原因:promise 写法有问题
- 解决方式: 在后面加上.catch((e) => {})
tips: Promise catch
return new Promise((resolve, reject) => { console.log }).catch((e) => {})
原因: webpack proxy 配置,只转发 localhost:8080 的数据,其他端口的数据并不进行代理操作 解决办法:将 fetch 请求的头部改为"localhost:8080"或"/" tips: webpack devServer proxy 代理
- 解决办法:调用 event.persist()综合事件会将事件从池中删除,从而允许异步保留对事件的引用。
- 参考: react 事件重用
tips: react event.persist()
tips: less 权重 > 伪类 :first-child
原因: babel 未编译内容不会自动出现在输出(dist)文件夹内,需要添加 copy-files 命令参数
<!-- 原来的编译命令(package.json script) -->
babel src --out-dir dist
<!-- 修改后的编译命令 -->
babel src --out-dir dist --copy-files
tips: less babel npm run build
tips: git browserslist webpack
tips: antd 4 key 不刷新 不重绘
- 原因: key 值使用了 uuid(),每次输入一个字符,key 就发生了变化
- 解决方法:改为其他 key 值
tips: key 只能输入一个字符 input inputnumber
23. chrome 56 鼠标滚动事件 wheel 无法 peventDefault 控制台报错:"intervention unable to preventdefault inside passive event listner due totarget being treated as passive"
prenventDefault 失效 chrome passive
- 原因:第三方扩展程序、个人开发的扩展程序有问题;最近未检查的运行时错误:在接收到 response 响应消息之前,消息通道的端口就已经关闭了。
- 解决方法: 删除错误的拓展程序 > 参考 1 > 参考 2 chrome 拓展
-
原因: 缺少 await 相关 babel plugin
-
解决方法:添加 babel-plugin-transform-runtime 依赖
-
具体配置.babelrc
{ "presets": ["env", "react", "stage-0"], "plugins": [ "transform-decorators-legacy", "transform-class-properties", "transform-decorators", "transform-react-constant-elements", "transform-react-inline-elements", "transform-runtime" ] }
transform-runtime regeneratorRuntime babel await async
- 原因: 被解构的对象、数组、变量类型不对,或者和结构方式不对应;
- 解决方法: 对应起来,
结构 es6
- 原因:pm2 不好使了
- 解决方法: 删除对应 PM2 列表中的服务,重新 start 即可 pm2 文件 加载失败