笔记


mobx的observable变成非observ的变量

以@observable声明的变量,可以会变成普通的对象,而失去响应能力,可能是应为直接复制的操作导致的。

1
2
3
4
5
@observable
private rowData = []; // 这样rowData是不是observable的?

@observable
private rowData = observable([]); // 需要这样赋值才行吗?

indicatorMap需要使用observable.ref声明才能监听到。用observable声明并用replace替换的话就不能监听到了.

1
2
3
4
5
6
reaction(
  () => indicatorMap, 
  (indicatorMap) => {
    console.log(1);
  },
),

8月13日review

  1. cellRendererFramework改成cellRender

改了cellRender以后不显示了。

  1. 没有AgSelect这个组件

MetadataHelper.resolveFullTitle()

列表中实现编码列跳转到编辑

实现新建页面保存后刷新列表

  1. 在定义路由时,将props传给presenter
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    
    ..renderBizForm({
      entityName: EN_Customer,
      title: '客户',
      // hashPrefix: '/customer/form',
      createPresenter: async (props, queryParams = {}) => {
        const { CustomerFormPresenter } = await importCustomerForm();
        return new CustomerFormPresenter({
          ...props,
        });
      },
    }),
    

    easyBizForm在constructor中将props赋值给_options,其中包含 passParams ,跳转到create界面时,会存一个onSuccess在路由中,通过passParams姐可以拿到这个onSuccess了。

错误提示信息

什么情况会出现唯一性错误?

哪些错误需要解析?

哪些错误是没有具体error信息,只有message的?

单元测试覆盖率

jest apps/link/src/main/screens/projects/budget --coverage

jest src/main/screens/projects/budget --coverage

refer是怎么渲染出来的,怎么才能变成多选?

在编制方案中,使用了MSTFormLayout和MSTFormElement来实现project的refer。MSTFormLayout中有DataField,它根据field.type确定project是refer,然后使用了ReferField组件又Refer组件。

这个组件里根据metadata取到entity对应的参照方案。

1
this.referConfig = metadata.getReferConfig(entityName, referName);

参照方案内包含了是否为多选的配置 referConfig.multi

还可以通过参数,透传到Refer组件。

1
<MSTFormElement path="project" isMulti={true}>

遇到问题:需要将project的初始值改为数组 在formCreated生命周期中,进行赋值操作

1
this.form.select('project').value=[];

最佳实践1

1
2
3
4
5
6
projectEligibles.forEach((item, index)=>{
  this.presenterApi.getEntityCRUD().deleteRowByRealIndex('projectEligibles', index);
})
newProjectItems.forEach((item) => {
  this.presenterApi.getEntityCRUD().appendRow('projectEligibles', this.getProjectAttr('Project', '项目', item))
})
updatedupdated2020-10-122020-10-12