We want to hear from you!Take our 2021 Community Survey!
This site is no longer updated.Go to react.dev

Ref-lərin Sahibləri Olması Xəbərdarlığı

Siz aşağıdakı xəta mesajlarına görə buradasınız:

React 16.0.0+

Warning:

Element ref was specified as a string (myRefName) but no owner was set. You may have multiple copies of React loaded. (details: https://fb.me/react-refs-must-have-owner).

React-in əvvəlki versiyalarında

Warning:

addComponentAsRefTo(…): Only a ReactOwner can have refs. You might be adding a ref to a component that was not created inside a component’s render method, or you have multiple copies of React loaded.

Bu xəbərdarlıq adətən üç səbəbdən yarana bilər:

  • ref-i funksiya komponentinə qoşduqda.
  • Komponentin render() funksiyasından kənarda yaranan elementə mətn ref-i qoşduqda.
  • Layihədə React-in konfliktdə olan bir neçə versiyası yükləndikdə (məsələn, səhv qurulmuş NPM paketinə görə).

Funksiya Komponentlərinə Ref-lər

Əgər <Foo> funksiya komponentidirsə bu komponentə ref əlavə etmək olmaz:

// Əgər Foo funksiyadırsa, işləməyəcək!
<Foo ref={foo} />

Əgər komponentə ref əlavə etmək lazımdırsa bu komponenti sinfə çevirin və ya komponentlər üçün ümümiyyətlə ref işlətməyin. Çünki bu nadir hallarda lazımdır.

Render Funksiyasından Kənarda Mətn Ref-ləri

Adətən sahibi olmayan komponentə (yəni digər komponentin render funksiyasından əlavə edilməyən) ref əlavə etdikdə xəbədarlıq göstəriləcək. Məsələn, aşağıdakı kod işləməyəcək:

// İşləmir!
ReactDOM.render(<App ref="app" />, el);

Bu komponenti ref-i saxlayan valideyn komponentdən render edin. Alternativ olaraq callback ref-indən istifadə edə bilərsiniz:

let app;
ReactDOM.render(
  <App ref={inst => {
    app = inst;
  }} />,
  el
);

Bu yolu işlətməmişdən öncə ref-lərə ehtiyacı olduğunuzdan əmin olun.

React-in Bir Neçə Kopiyası

Bower asılılıqların duplikasiyalarını silə bilir. NPM isə bunu etmir. Əgər siz ref-lər ilə işləmirsinizsə problem ref-lərdə olmaya bilər. Layihədə React-in bir neçə kopiyasının yükləməsindən problem yarana bilər. Bəzən, 3-cü tərəfin modulunu NPM ilə yüklədikdə, bu modul React-in fərqli kopiyasını yükləyə bilər. Bu səbəbdən problemlər yarana bilər.

Əgər NPM işlədirsinizsə npm ls və ya npm ls react əmrləri ilə nə baş verdiyi haqqda məlumat ala bilərsiniz.

Is this page useful?Bu səhifəni redaktə edin