MboX + ReactECharts 不更新数据 作者: Chuwen 时间: 2022-01-12 分类: React 评论 tsx 如下: ``` ``` store 如下: > 如果按照以下 `setOptionsData` 就会出现问题,数据已经给了,但是视图不会更新 ```ts import {action, computed, makeObservable, observable} from "mobx"; export default class ChartStore implements IChart { @observable public options = ChartOption; constructor() { makeObservable(this) } @computed get getOptions(): any { return this.options } @action.bound setOptionsData(data: ChartOptionsData): void { // 设置 x 轴数据 if (this.options?.xAxis[0]?.data) { this.options.xAxis[0].data = data.xAxisData; } } } ``` ### 解决办法 > 原因是深浅克隆的原因,仅作为记录,不保证我说的一定是正确的 首先安装 `lodash`,`setOptionsData` 方法改为如下,就可以正常运行了: ```ts @action.bound setOptionsData(data: ChartOptionsData): void { //深度克隆数据 const newOption = cloneDeep(this.options) // 设置 x 轴数据 if (this.options?.xAxis[0]?.data) { newOption.xAxis[0].data = data.xAxisData } this.options = newOption } ```
React + Vite + TypeScript 读取环境变量报错: Uncaught ReferenceError: process is not defined 作者: Chuwen 时间: 2022-01-05 分类: React 评论 Uncaught ReferenceError: process is not defined: 相关来源:https://github.com/vitejs/vite/issues/1973#issuecomment-787571499 解决办法,在 `vite.config.json`: ```json import {defineConfig, loadEnv} from 'vite' import react from '@vitejs/plugin-react' export default ({mode}: { mode: string }) => { return defineConfig({ define:{ 'process.env':{...process.env, ...loadEnv(mode, process.cwd())} } }); } ``` 然后在你的环境变量文件以 `VITE_` 开头命名,然后使用 `process.env.VITE_XXX` 获取就好了
Linux 命令对文件夹权限改为 755,文件权限改为 644 作者: Chuwen 时间: 2021-12-29 分类: Linux技巧 评论 ```shell # 改用户组 chown www:www -R /www/wwwroot/chuwen/ # 将所有文件(夹)权限改为 644 chmod 644 -R /www/wwwroot/chuwen/ # 将文件夹改为 755 权限 find /www/wwwroot/chuwen/ -type d -print|xargs chmod 755 ```
Nginx + PHP-fpm 打开白屏 作者: Chuwen 时间: 2021-12-29 分类: PHP 评论 检查下 Nginx 的 `fastcgi_params` 文件,一般在 `/etc/nginx/fastcgi_params` 下 默认是: ``` fastcgi_param QUERY_STRING $query_string; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param CONTENT_TYPE $content_type; fastcgi_param CONTENT_LENGTH $content_length; fastcgi_param SCRIPT_NAME $fastcgi_script_name; fastcgi_param REQUEST_URI $request_uri; fastcgi_param DOCUMENT_URI $document_uri; fastcgi_param DOCUMENT_ROOT $document_root; fastcgi_param SERVER_PROTOCOL $server_protocol; fastcgi_param REQUEST_SCHEME $scheme; fastcgi_param HTTPS $https if_not_empty; fastcgi_param GATEWAY_INTERFACE CGI/1.1; fastcgi_param SERVER_SOFTWARE nginx/$nginx_version; fastcgi_param REMOTE_ADDR $remote_addr; fastcgi_param REMOTE_PORT $remote_port; fastcgi_param SERVER_ADDR $server_addr; fastcgi_param SERVER_PORT $server_port; fastcgi_param SERVER_NAME $server_name; # PHP only, required if PHP was built with --enable-force-cgi-redirect fastcgi_param REDIRECT_STATUS 200; ``` ### 需要在里面加入这一行 ``` fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; ``` 就能正常运行 PHP 了
Nginx 报错: nginx: [emerg] open() "/etc/nginx/fastcgi.conf" failed (2: No such file or directory) 作者: Chuwen 时间: 2021-12-28 分类: Linux 评论 nginx: [emerg] open() "/etc/nginx/fastcgi.conf" failed (2: No such file or directory) 出错的相关配置: ``` location ~ .*\.php(\/.*)*$ { fastcgi_pass app_server:9000; include fastcgi.conf; fastcgi_connect_timeout 10; fastcgi_send_timeout 10; fastcgi_read_timeout 10; } ``` 只需要把 `include fastcgi.conf;` 改成 `include fastcgi_params;` 即可 ``` location ~ .*\.php(\/.*)*$ { fastcgi_pass app_server:9000; include fastcgi_params; fastcgi_connect_timeout 10; fastcgi_send_timeout 10; fastcgi_read_timeout 10; } ```