FeathersJS自定义API方法,用于检索枚举类型,以填充React中的下拉列表



所以我正在尝试用猫鼬的枚举类型填充选择组件

在我的用户服务中,架构如下所示:

firstName: { type:String, required: true },
   ...
ris:{type: String, default: 'R', enum:['R', 'I', 'S']},

在我的羽毛服务中,我可以使用"这个。模型">

所以在任何钩子中我都可以做到:

this.Model.schema.path('ris').enumValues); //['R','C','I']

我从枚举类型中获取值。

现在,由于我无法创建自定义API方法,因此无法创建官员以外的自定义API方法

  • 调用自定义 API 方法的羽毛
  • https://docs.feathersjs.com/clients/readme.html#caveats
  • https://docs.feathersjs.com/help/faq.html#can-i-expose-custom-service-methods

如何创建服务方法/调用/某些内容,以便我可以在我的

componentDidMount(){ var optns= this.props.getMyEnumsFromFeathers}

并具有枚举 ["R"、"C"、"I'] 来设置我的下拉菜单

我正在使用 React/Redux/ReduxSaga-FeathersJS

我会创建一个服务来在find方法中列出枚举:

class EnumService {
  find(params) {
    const { service, path } = params.query;
    const values = this.app.service(service).Model.schema.path(path).enumValues;
    return Promise.resolve(values);
  }
  setup(app) {
    this.app = app;
  }
}
app.use('/enums', new EnumService())

然后在客户端上你可以做

app.service('enums').find({ query: {
    service: 'myservice',
    path: 'ris'
  }
}).then(value => console.log('Got ', values));

我试图使用此代码,但是,它不像即插即用那样工作。

在使用应用程序服务进行一些游戏后,我想出了下面的代码

    async find(params) {
        const { service, path } = params.query;
        const values = await this.app.service(service).Model.attributes[path].values;
        return values || [];
      }
      setup(app) {
        this.app = app;
      }

不确定这是否是使用什么数据库的问题,就我而言,我在开发环境中,所以,我正在使用sqlite。

相关内容

  • 没有找到相关文章

最新更新