我如何将 Pikaday 与 ReactJS 一起使用?

How can I use Pikaday with ReactJS?

我想将 Pikaday 日期选择器与 ReactJS 一起使用。它不是基于 ReactJS。我该如何使用它?

要将 Pikaday 与 ReactJS 一起使用,您可以像任何其他节点模块一样要求它。诀窍是挂钩到 React 渲染事件,以便在渲染视图后,Pikaday 会在您要使用它的任何渲染 DOM 输入上初始化。您可以使用 ReactJS lifesystle 事件 componentDidRender:

  componentDidMount: function() {
    new Pikaday({
      field: React.findDOMNode(this.refs.start),
      format: 'MM/DD/YYYY',
      onSelect: this.onChangeStart
    });

    new Pikaday({
      field: React.findDOMNode(this.refs.end),
      format: 'MM/DD/YYYY',
      onSelect: this.onChangeEnd
    });
  }

为了使它在 React 16.3 中正常工作,我必须将你所拥有的更新到下面。

import React from 'react'
import Pikaday from 'pikaday'

class PikadayWrap extends React.Component {
  constructor (params) {
    super(params)
    this.myRef = React.createRef()
  }

  componentDidMount () {
    new Pikaday({
      field: this.myRef.current,
      format: 'MM/DD/YYYY',
      onSelect: this.onChangeStart
    })
  }

  render () {
    return <div>
      <input type='text' ref={this.myRef} />
    </div>
  }
}
export default PikadayWrap

查看此问题了解更多信息。