안정적인 웹 서비스를 호출하는 인라인 DataSource가있는 Kendo UI Grid 인스턴스가 있습니다.React.js를 사용하여 kendo ui 데이터 소스를 그리드에서 호출하는 방법
페이지가로드 될 때 데이터를 가져 오지 않으므로 Grid의 "autoBind : false"속성을 설정했습니다.
수동으로 dataSource.read() 메소드를 트리거하고 싶지만 React를 사용하는 방법을 모른다.
나는 webpack을 사용하는 환경을 설정하기 위해 create-react-app를 사용하고 있습니다.
단추를 누를 때 Grids dataSource 읽기 메서드를 트리거하고 싶습니다.
내가 전화 시도 데이터 소스의 읽기 메소드를 호출하지만, 단지 속성 값에 액세스 할 것으로 보인다해야
this.state.grid.ds.read
. Read() 메서드를 호출하고 속성을 참조 할 수 없도록 Grid 객체 또는 DataSource 객체의 인스턴스를 가져와야하는지 잘 모르겠습니다.
나는 read()를 시도했지만, 읽기가 메소드로 정의되어 있지 않다는 콘솔 오류가 발생합니다. 다음은
this.state.grid.ds.read()
class App extends Component {
constructor(props) {
super(props);
this.state = {
gridOptions: {
autoBind: false,
dataSource: {
transport: {
read: {
url: "http://localhost:8080/students",
dataType: "json"
},
parameterMap: function(options, operation) {
if (operation !== "read" && options.models) {
return { models: kendo.stringify(options.models) };
}
}
},
batch: true,
pageSize: 20,
schema: {
model: {
id: "id",
fields: {
id: { type: "string" },
firstName: { type: "string"},
lastName: { type: "string"},
country: { type: "string" }
}
}
}
},
pageable: true,
height: 550,
columns: [
{ field: "id", title: "Student/Teacher" },
{ field: "firstName", title: "First Name" },
{ field: "lastName", title: "Last Name" },
{ field: "country", title: "Country" },
{ command: ["edit", "destroy"], title: " ", width: "250px" }
],
editable: "inline"
}
}
}
refreshDS(){
this.state.grid.ds.read
}
render() {
return (
<div className="App">
<header className="App-header">
<img src={logo} className="App-logo" alt="logo" />
<h1 className="App-title">Welcome to React</h1>
</header>
<p className="App-intro">
<button
onClick={this.refreshDS()}>
Refresh Grid
</button>
</p>
<br />
<Grid
{...this.state.gridOptions} />
</div>
);
}
}
어떤 도움에 감사드립니다.
나는 비슷한 것을 시도하고 있으며 여러분이 어떤 통찰력을 가지길 희망합니다. 나는 redux와 함께 그리드를 사용하고 있으며, redux의 데이터가 제공 될 때 ComponentWillReceiveProps에서 그리드의 데이터 소스를 설정하려고합니다. 하지만 아무 일도 일어나지 않습니다 ... 어떤 아이디어? –