0

ReactTypeScript一起使用

请有人提供一个示例,说明我如何能够使用 Kendo DataSource 从内部使用 Axios 为 JSON 数据生成外部 API 的方法中读取数据..?我一定已经尝试过 20 个不同版本的代码尝试不同的方法,似乎没有什么适合...

我目前要做的就是提供一个带有 {id: number, name: string} 数组的 Kendo ComboBox

目前非常基本的东西,但我稍后必须使用类似的方法与处理服务器端排序和分页的 Kendo Grid 一起使用,所以我想现在让它工作,那么以后应该会更容易一些。 ..

我想使用 Axios 的原因是因为我编写了一个 api.ts 文件,该文件在获取和帖子等上附加了适当的标题,并且还很好地处理了错误(即当身份验证被拒绝时等......)

我正在尝试但不起作用的一个基本示例是:-

public dataSource: any;

constructor(props: {}) {
super(props);

this.dataSource = new kendo.data.DataSource({
  type: "odata",
  transport: {
    read: function() {
      return [{ id: 1, name: "Blah" }, { id: 2, name: "Thing" }];
    }.bind(this)
  },
  schema: {
    model: {
      fields: {
        id: { type: "number" },
        name: { type: "string" }
      }
    }
  }
});
}

<ComboBox
   name="test"
   dataSource={this.dataSource}
   placeholder={this.placeholder}
   dataValueField="id"
   dataTextField="name"
/>

请问有人对此有什么想法吗?:)

4

1 回答 1

1

最后轻松解决...

this.dataSource = new kendo.data.DataSource({
  transport: {
    read: function(options: any) {
      options.success([{ id: 1, name: "Blah" }, { id: 2, name: "Thing" }]);
    }.bind(this)
  },
  schema: {
    model: {
      fields: {
        id: { type: "number" },
        name: { type: "string" }
      }
    }
  }
});

2件事是错的..

删除了类型:“odata”,并添加了选项的 用法

现在使用 async await 函数也可以正常工作,只需将数据传递.then中的options.success中。任务完成 :-)

于 2018-09-09T20:55:21.930 回答