Mobx,过滤和取消移动@computed中的数组

时间:2018-11-07 14:16:26

标签: arrays reactjs mobx computed-properties

给出一个包含id-name-propertyName集合的可观察数组,我试图滤除必须绑定到React组件中html select控件的country数组。我需要在我的select html元素中提供一个空的默认值。 “国家/地区”的过滤器效果很好,但是当添加.unshift(empty)部分时,我遇到了问题。

我的观察结果

class ReferenceStore {
  @observable referenceData=[];

到目前为止,我的@computing:

  @computed get countries() {
    var empty = { id: 0, name: '' };
    var test = this.referenceData.filter(x => x.propertyName === "Country").unshift(empty);
    return test; 
  }

问题是此代码在我的组件中导致以下错误消息:

ReferenceStore__.a.countries.map is not a function 

我应该怎么做?谢谢!

1 个答案:

答案 0 :(得分:1)

unshift返回数组的新长度,而不是数组本身。

您可以先执行unshift,然后返回数组。

@computed get countries() {
  var empty = { id: 0, name: '' };
  var test = this.referenceData.filter(x => x.propertyName === "Country");

  test.unshift(empty);

  return test; 
}