2016-07-25 21 views
7

Nie próbuję mutować rekwizytów. po prostu chcą mieć dostęp do this.props w metodach zwanych w konstruktorze:React: Ustawienie this.props w konstruktorze ...? (nie próbując zmutować rekwizytów)

constructor(props){ 
    super(props); 

    this.props = props; // CAN I? There is no errors or warnings 

    const filtered = this.filterValue(props.value); 
    this.state = { 
     value: filtered, 
    } 
} 

filterValue(value){ 
    // here I need this.props.* 
} 

Wiem, że istnieje kilka sposobów, aby to zrobić na przykład dodatkowy argument przekazany do parametru filterValue, jednak chcę, aby był jak najprostszy. Myślę, że powyższy kod jest dość intuicyjny, ale pytanie brzmi: czy mogę to zrobić tak? React i tak nadpisze to.

+2

Możesz to zrobić, ale 'super' prawdopodobnie i tak to zrobił. –

+0

omg, masz rację. Nie jestem pewien, dlaczego tego nie zauważyłem. Byłem pewien, że rekwizyty nie są zdefiniowane w konstruktorze. Prawdopodobnie zapomniałem przekazać rekwizyty super:/ – cimak

Odpowiedz

5

można uzyskać dostęp za pomocą rekwizytów this.props w sposobach, jak opisano w the React.Component documentation:

Instance Właściwości:

  • rekwizyty

  • stan

Jeśli jesteś ciekawy, możesz spojrzeć na kod źródłowy ReactComponent constructor.

+2

Czy to nadal prawda? Czy możesz zaktualizować link do źródła, w którym to robi? – Noitidart

+0

@Noitidart tak, to nadal prawda. Zaktualizowałem powyższą odpowiedź. – mbh

+0

Dzięki @Alik! W edycji nie jest jasne. Czy można bezpiecznie zmutować ten.props lub zdarzenie ustawić to.props na nowy obiekt? – Noitidart

Powiązane problemy