简体   繁体   English

使用react-datepicker仅在选定的div中选择和更新日期

[英]Select and update date in only selected div using react-datepicker

I am developing a react application. 我正在开发一个React应用程序。 I have 3 div, each have DatePicker component. 我有3 div,每个都有DatePicker组件。 I want to update the date of selected. 我想更新选择的日期。 When I change the date, it gets updated every div. 当我更改日期时,每个div都会更新。

Here is code - 这是代码-

 import React, { Component } from 'react'; import DatePicker from 'react-datepicker'; import moment from 'moment'; import './App.css'; import 'react-datepicker/dist/react-datepicker.css'; class Application extends React.Component { constructor(props) { super(props) this.state = { date: moment() }; } dateChanged = (d) => { this.setState({ date: d }); } render() { return ( <div> <div> <DatePicker selected={this.state.date} onChange= {this.dateChanged} /> </div> <div> <DatePicker selected={this.state.date} onChange={this.dateChanged} /> </div> <div> <DatePicker selected={this.state.date} onChange={this.dateChanged} /> </div> </div> ); } } export default Application; 

Here is how can you do it. 这是你怎么做。

import React, { Component } from 'react';
import DatePicker from 'react-datepicker';
import moment from 'moment';

import './App.css';

import 'react-datepicker/dist/react-datepicker.css';

class Application extends React.Component {

    constructor(props) {
        super(props)
        this.state = { date1: moment(), date2: moment(), date3: moment() };
    }

    dateChanged = (provider, d) => {
        this.setState({ [provider]: d });
    }


    render() {
        return (
            <div>
                <div>
                    <DatePicker selected={this.state.date1} onChange={this.dateChanged.bind(this, "date1")} />
                </div>
                <div>
                    <DatePicker selected={this.state.date2} onChange={this.dateChanged.bind(this, "date2")} />
                </div>
                <div>
                    <DatePicker selected={this.state.date3} onChange={this.dateChanged.bind(this, "date3")} />
                </div>
            </div>
        );
    }
}

export default Application;

For doing this, you need to provide a key and value in the state for each one 为此,您需要为每个状态提供一个键和值

 import React, { Component } from 'react'; import DatePicker from 'react-datepicker'; import moment from 'moment'; import './App.css'; import 'react-datepicker/dist/react-datepicker.css'; class Application extends React.Component { constructor(props) { super(props) this.state = { date1: moment(), date2: moment(), date3: moment() }; } dateChanged = (provider, d) => { this.setState({ [provider]: d }); } render() { return ( <div> <div> <DatePicker selected={this.state.date} onChange={this.dateChanged.bind(this, "date1")} /> </div> <div> <DatePicker selected={this.state.date} onChange={this.dateChanged.bind(this, "date2")} /> </div> <div> <DatePicker selected={this.state.date} onChange={this.dateChanged.bind(this, "date3")} /> </div> </div> ); } } export default Application; 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM