2017-07-31 14 views
0

現在、 'componentdidupdate'に基づいて小道具を更新したいところです。'x'は定義されていません - 地図へのディスパッチを小道具

onUpdateSelectedDate(toggledDate) 


this.onUpdateSelectedDate(toggledDate) 


this.props.onUpdateSelectedDate(toggledDate) 

、まだわからない私はこれを取得しています理由:しかし、私はこの機能(onUpdateSelectedDate)を呼び出すたびに、それはonUpdateSelectedDateが

が定義されていない

私は次のことを試してみましたと言っ続けますエラー。

コードあなたがcomponentDidUpdateメソッドの間違った署名を使用し

import DayPicker from "react-day-picker" 
import React, {Component} from 'react' 
import './calendarDatePicker.scss' 
import propTypes from 'prop-types' 
import { connect } from 'react-redux' 

class CalendarDatePicker extends Component { 
    state = { 
    toggledDate: null, 
    } 

    componentDidUpdate =() => { 
    const toggledDate = this.state.toggledDate 
    onUpdateSelectedDate(toggledDate) 
    } 

    render() { 
    const selectedDate = this.props.selectedDays 
    const onDayClick = this.props.onDayClick 
    const toggledDate = this.state.toggledDate 
    const modifiers = { 
    } 

    return (
     <DayPicker 
      selectedDays={toggledDate===null ? selectedDate : toggledDate} 
      onDayClick={onDayClick} 
      todayButton="Go to Today" 
      firstDayOfWeek={1} 
      modifiers = {modifiers} 
      onMonthChange={(d) => this.setState({toggledDate: d})} 
     /> 
    ) 
    } 
} 

CalendarDatePicker.propTypes = { 
    selectedDays: propTypes.instanceOf(Date), 
    onDayClick: propTypes.func, 
    onUpdateSelectedDate: propTypes.func, 
} 

const mapStateToProps = (state) => { 
    return { 
    //toggledDate: state.diaryContext.activities.selectedDates, 
    } 
} 

const mapDispatchToProps = (dispatch) => { 
    return { 
    onUpdateSelectedDate: (toggledDate) => { dispatch(diaryActions.updateSelectedDate(toggledDate)) }, 
    } 
} 

export default connect(null, mapDispatchToProps)(CalendarDatePicker) 

答えて

2

の下にそれがcomponentDidUpdate(prevProps, prevState)する必要があり、その後、あなたはそのようなmapStateToPropsからあなたの機能にアクセスすることができます。

componentDidUpdate (prevProps, prevState) { 
    const toggledDate = prevState.toggledDate 
    prevProps.onUpdateSelectedDate(toggledDate) 
} 
+0

(関係のない、しかし、それを作りますスニペットはコンテキストなしで実行できないため、実際には役に立ちません。 –

+0

恐ろしい!!!多くのありがとう:D –

関連する問題