将 React-Slick 与查询参数同步

Posted

技术标签:

【中文标题】将 React-Slick 与查询参数同步【英文标题】:Syncing React-Slick with Query Params 【发布时间】:2019-02-12 18:18:37 【问题描述】:

我正在使用 React-Slick 在轮播中渲染 <Report /> 组件。我想将每个<Report />reportId 与查询参数同步。

例如,用户可以通过转到myapp.com/reports?id=1 来查看特定报告,然后他们会转到该特定“幻灯片”。

我遇到的问题是在初始化幻灯片之前加载了 report 数据。我找不到任何 react-slick 的 onInitonReInit 的好例子。

【问题讨论】:

【参考方案1】:

我没有使用onInitonReInit,而是使用了initialSlide 设置并使用了componentDidUpdate()

componentDidUpdate = (prevProps, prevState) => 

const queryParams = qs.parse(this.props.location.search)
if (prevProps.reports !== this.props.reports) 
  const sortedReports = this.sortReportsByDate(this.props.reports)

  this.setSlideIndex(sortedReports.findIndex(i => i.id === parseInt(queryParams.reportId, 10)))
  this.setQueryParams(
    reportId: this.sortReportsByDate(this.props.reports)[this.state.slideIndex].id
  )


if (prevState.slideIndex !== this.state.slideIndex) 
  this.setQueryParams(
    reportId: this.sortReportsByDate(this.props.reports)[this.state.slideIndex].id
  )



还有设置:

const settings = 
  ...
  initialSlide: reportsSortedByDate.findIndex(i => i.id === parseInt(queryParams.reportId, 10))
  ...

我希望有人觉得这很有用!

【讨论】:

以上是关于将 React-Slick 与查询参数同步的主要内容,如果未能解决你的问题,请参考以下文章

如何正确同步解析与本地数据存储?

与 Amazon Redshift 同步

Synapse Analytics sql 按需同步与火花池的查询速度非常慢

Linux系统将服务器时间与网络时间同步

数据库主从同步延迟问题

将项目与 Firebase 同步时出错