在 redux 状态管理组件中与 Primereact DataView 组件斗争
Struggling with the Primereact DataView component in a redux state managed Component
我正在尝试使用 Primereact DataView,但问题是我的数据是使用操作从后端加载的。以下是我的代码,将解释我的 objective 后者。
export const getFinishedProjects = () => dispatch => {
axios.get(finishedProjectsURL)
.then(res => {
dispatch({
type: GET_FINISHED_PROJECTS,
payload: res.data
});
}).catch(err => console.log(err))
}
componentDidMount() {
this.props.getFinishedProjects();
}
<div className="dataview-demo">
<div className="card">
<DataView
value={this.props.finishedprojects}
layout={this.state.layout}
header={header}
lazy
itemTemplate={this.itemTemplate}
paginator
paginatorPosition={'both'}
rows={this.rows}
totalRecords={this.state.totalRecords}
first={this.state.first}
/>
</div>
</div>
const mapStateToProps = state =>({
finishedprojects : state.finishedprojects.finishedprojects
})
export default connect(mapStateToProps, {getFinishedProjects} ) (FinishedProjects);
现在文档中出现了问题,我假设这两个函数用于加载数据
componentDidMount() {
setTimeout(() => {
this.productService.getProducts().then(data => {
this.datasource = data;
this.setState({
totalRecords: data.length,
products: this.datasource.slice(0, this.rows),
loading: false
});
});
}, 1000);
}
onPage(event) {
this.setState({
loading: true
});
//imitate delay of a backend call
setTimeout(() => {
const startIndex = event.first;
const endIndex = event.first + this.rows;
this.setState({
first: startIndex,
products: this.datasource.slice(startIndex, endIndex),
loading: false
});
}, 1000);
}
通过我的方法,我似乎得到了这个错误:错误:DataViewItem(...):渲染中没有 returned。这通常意味着缺少 return 语句。或者,为了不渲染任何内容,return null.
我的假设是,这可能与我从后端加载数据的方式有关。如果是这样的话,可能有人会帮助我如何模仿那些文档,如函数和在 DataView 中呈现数据。提前致谢
不知何故,PrimeReact 附带的分页器导致了我的问题。所以我有 paginator={false} 并且 Dataview 再次开始工作。我仍在调试它,但与此同时,您可以通过禁用分页器来测试您的数据是否正常工作,如果 Dataview 不工作,那么您的数据可能格式不正确,因为 DataView 期望一组对象。
我正在尝试使用 Primereact DataView,但问题是我的数据是使用操作从后端加载的。以下是我的代码,将解释我的 objective 后者。
export const getFinishedProjects = () => dispatch => {
axios.get(finishedProjectsURL)
.then(res => {
dispatch({
type: GET_FINISHED_PROJECTS,
payload: res.data
});
}).catch(err => console.log(err))
}
componentDidMount() {
this.props.getFinishedProjects();
}
<div className="dataview-demo">
<div className="card">
<DataView
value={this.props.finishedprojects}
layout={this.state.layout}
header={header}
lazy
itemTemplate={this.itemTemplate}
paginator
paginatorPosition={'both'}
rows={this.rows}
totalRecords={this.state.totalRecords}
first={this.state.first}
/>
</div>
</div>
const mapStateToProps = state =>({
finishedprojects : state.finishedprojects.finishedprojects
})
export default connect(mapStateToProps, {getFinishedProjects} ) (FinishedProjects);
现在文档中出现了问题,我假设这两个函数用于加载数据
componentDidMount() {
setTimeout(() => {
this.productService.getProducts().then(data => {
this.datasource = data;
this.setState({
totalRecords: data.length,
products: this.datasource.slice(0, this.rows),
loading: false
});
});
}, 1000);
}
onPage(event) {
this.setState({
loading: true
});
//imitate delay of a backend call
setTimeout(() => {
const startIndex = event.first;
const endIndex = event.first + this.rows;
this.setState({
first: startIndex,
products: this.datasource.slice(startIndex, endIndex),
loading: false
});
}, 1000);
}
通过我的方法,我似乎得到了这个错误:错误:DataViewItem(...):渲染中没有 returned。这通常意味着缺少 return 语句。或者,为了不渲染任何内容,return null.
我的假设是,这可能与我从后端加载数据的方式有关。如果是这样的话,可能有人会帮助我如何模仿那些文档,如函数和在 DataView 中呈现数据。提前致谢
不知何故,PrimeReact 附带的分页器导致了我的问题。所以我有 paginator={false} 并且 Dataview 再次开始工作。我仍在调试它,但与此同时,您可以通过禁用分页器来测试您的数据是否正常工作,如果 Dataview 不工作,那么您的数据可能格式不正确,因为 DataView 期望一组对象。