• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

ReactJS refs problem

0 głosów
442 wizyt
pytanie zadane 8 listopada 2017 w JavaScript przez lastavenger Obywatel (1,060 p.)

Witam

Działam w Reactie od paru dni, ale mam teraz problem z "refs", zamieściłem wszystko tak jak w poradniku... mam nadzieje, lecz dalej zmienna "val" daje undefined.

    save: function() {
        var val = this.refs.newText.value;
        console.log(this.state.editing);
        console.log("new comment: " + val);
        this.setState({editing: false});
    },
    renderForm: function() {
        return (
            <div className="outsideBox"> 
                <textarea ref="newText" className="textEdit" defaultValue={this.props.children}></textarea>           
            <div className="savBtn" onClick={this.save}>Save</div>
            </div>
        );
    },
    render: function() {
            if (this.state.editing){
                return this.renderForm();
            }else{
                return this.renderNormal();
            }
            }
        });

 

1
komentarz 8 listopada 2017 przez Tomek Sochacki Ekspert (227,490 p.)

Proponuję na wstępie przejść na nowy styl tworzenia komponentów React w formie funkcyjnej albo jako klasa rozszerzająca React.Component. Masz widocznie jakiś stary tutorial. Najlepiej odpuść go sobie i porób sobie przykłady z dokumentacji React.

Polecam bloga nafrontendzie.pl gdzie Kolega Bartek bardzo fajnie opisuje podstawy React, redux, itd.

I na razie na początku nie baw się "refs". Najpierw zapoznaj się dobrze z propsami, stanem itp. itd. bo jeśli zaczniesz od ref to może niepotrzebnie wyrobisz sobie nie najlepsze nawyki w pracy z React.

1 odpowiedź

0 głosów
odpowiedź 9 listopada 2017 przez ShiroUmizake Nałogowiec (46,300 p.)
Podpisuję się wyżej lepiej nie zacząć od wersji React without ES6 bo tam można dostać w raka na początku.

Co do problemu nie dziw się, że obiekt val nie przejmuje żadnej wartości . Gdyż nie przekazujesz mu żadnej wartości. Pamiętaj, że musisz rozróżnić co jest DOM a co VDOM.  Powinaś mu przekazać eventTarget, oczywiście stosując bind() bądż arrow-function by wskazać które "this" nas interesuje w drzewie React.DOM. Teraz słusznie nie wie, co to jest val

A z tego co patrzyłem to ref wywołujesz na focus.

https://reactjs.org/docs/refs-and-the-dom.html

Podobne pytania

0 głosów
0 odpowiedzi 139 wizyt
pytanie zadane 29 sierpnia 2016 w JavaScript przez RobsonWD Nowicjusz (220 p.)
0 głosów
0 odpowiedzi 141 wizyt
pytanie zadane 7 września 2022 w JavaScript przez castor_fiber Użytkownik (800 p.)
0 głosów
1 odpowiedź 603 wizyt
pytanie zadane 21 lipca 2022 w JavaScript przez kubekszklany Gaduła (3,250 p.)

93,604 zapytań

142,529 odpowiedzi

322,997 komentarzy

63,092 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...