谷雨
截止 2022.05.21【计划】
Knowledge and Experience
border-image
- IntersectionObserver API
- git 修改分支名称
- react+antd form 警告 Warning: [antd: Form.Item]
children
is array of render props cannot havename
. | 官方说明:复杂一点的控件 - Warning: ant Checkbox: value is not a valid prop, do you mean checked?
- Checkbox,
form.setFieldsValue
后控制台报错; - Use valuePropName for Checkbox form item:
<Form.Item label="landscape" name="landscape" valuePropName="checked"><Checkbox /></Form.Item>
- Checkbox,
-
git revert -n
:参考git revert <commit-id>
:撤销某个提交;git revert -n|--no-commit <commit-id>
:撤销某个提交,但执行命令后不进入编辑界面,也就是不会自动提交文件,需要手动提交,这与上一点的差别就是撤销和提交分开了,适用于需要在撤销的基础上再进行更改的场景。
- echo
nvm ls
:显示命令执行结果 -
lts/dubnium -> v10.24.1 (-> N/A) lts/erbium -> v12.22.9 (-> N/A) lts/fermium -> v14.18.3 (-> N/A) lts/gallium -> v16.13.2
- antd Select onChange 获取除了 value 其他的值:给 option 标签添加“data”属性;
- 动态创建 ref:
const CustomComponent = (props, ref) => {
const [ArrConfig, setArrConfig] = useState([]);
const MaxKey = useRef(-1);
const refs = useRef({}); // using useRef because we want to persist the values when component re-renders
useImperativeHandle(ref, () => ({
refs,
}));
// 用户动态创建
const add = () => {
// 随便模拟一下,key值一版是自增的
setArrConfig([...ArrConfig, { key: (MaxKey.current += 1) }]);
};
const setRefs = (ele: HTMLElement, key: number) => {
if (ele) {
// 当map开始遍历后就会调用,因为ref回调函数是以内联函数的方式定义的,所以更新过程中会执行两次。一次参数是null,一次是dom元素,所以需要if判断
refs.current[`form_${key}`] = ele;
}
};
return (
<div className='card'>
{ArrConfig.map(({ key }) => (
<DynamicRenderItemForm
key={key}
ref={(ele: HTMLElement) => setRefs(ele, key)}
/>
))}
</div>
);
};
export default forwardRef(CustomComponent);
- 表单禁止输入空格
rules: [
{
pattern: /^[^\s]*$/,
message: 'No spaces',
},
];
-
Table 表格默认某列降序排序时(没排序时就按照这列降序),点击没反应(因为降序的下一个值是 undefined,被默认降序覆盖了),可以改变 sortDirections 的顺序为: [‘descend’, ‘ascend’]即可;
-
如果远程主机删除了某个分支,默认情况下,
git pull
不会在拉取远程分支的时候,删除对应的本地分支。这是为了防止,由于其他人操作了远程主机,导致git pull
不知不觉删除了本地分支。加上参数-p
就会在本地删除远程已经删除的分支; Git 远程操作详解git pull -p # 等同于下面的命令 git fetch --prune origin git fetch -p