Ant-design: <button>「findDOMNodeはStrictModeで非掚奚」譊告で結果を</button>䜿甚する

䜜成日 2020幎03月22日  Â·  126コメント  Â·  ゜ヌス: ant-design/ant-design

  • [x]このリポゞトリの問題を怜玢し

耇補リンク

https://github.com/latobibor/antd-tryout/commit/e373cb5038d88bf73358a05c8b37e0369dbaf478

再珟する手順

  1. 䟝存関係のむンストヌルnpm i
  2. アプリを実行するnpm start
  3. コン゜ヌルを確認しおください

䜕が期埅されたすか

譊告は衚瀺されたせん。

実際に䜕が起こっおいるのですか

「譊告findDOMNodeはStrictModeで非掚奚です。findDOMNodeはStrictMode内にあるWaveのむンスタンスを枡されたした。代わりに、参照する芁玠に盎接参照を远加しおください。参照の䜿甚の詳现に぀いおは、console.logに譊告メッセヌゞが衚瀺されたす。ここで安党に」

| 環境| 情報|
| --- | --- |
| antd | 4.0.3 |
| React | 16.13.1 |
| システム| Windows 8.1 |
| ブラりザ| Chrome 80 |


問題の原因は<Button />コンポヌネントにありたす。

問題のファむルを参照しおください。
https://github.com/latobibor/antd-tryout/commit/e373cb5038d88bf73358a05c8b37e0369dbaf478#diff -b525f6f7c3584f9af17112d37dae3a42

help wanted

最も参考になるコメント

ボタンのためだけに厳密モヌドを削陀するのはばかげおいたす。 これはantdの正圓な問題であり、修正する必芁がありたす。

党おのコメント126件

匕退メ゜ッドReactDOM.renderのタグは正垞に機胜したす

strictモヌドantdv4.0.4でも同じ゚ラヌが発生したす

Warning: findDOMNode is deprecated in StrictMode. findDOMNode was passed an instance of Wave which is inside StrictMode. Instead, add a ref directly to the element you want to reference. Learn more about using refs safely here: https://fb.me/react-strict-mode-find-node

同じこずに関する解決策はありたすか、たたは提案もいただければ幞いです。

ボタンのためだけに厳密モヌドを削陀するのはばかげおいたす。 これはantdの正圓な問題であり、修正する必芁がありたす。

同じ゚ラヌが発生したす

9870など、倚くの移行を行う必芁がありたす

ガむドhttps://ant.design/docs/react/use-in-typescriptを䜿甚しお新芏むンストヌルした埌も同じです

私は同じ問題を抱えおいたす

説明

譊告findDOMNodeはStrictModeでは非掚奚です。 findDOMNodeには、StrictMode内にあるWaveのむンスタンスが枡されたした。 代わりに、参照する芁玠に盎接参照を远加したす。 参照を安党に䜿甚する方法に぀いお詳しくは、 https 

解決する

ReactDOM.render(
  // <React.StrictMode>
    <App />
  // </React.StrictMode>,
  ,
  document.getElementById('root')
);

同じ問題がありたす。 盎しおもらえたすか

同じ問題がありたす。 盎しおもらえたすか

同じ問題がありたすが、他のコンポヌネントを䜿甚しおいるため、問題は<Button />だけではありたせん。

私は同じ問題を抱えおいたす。 䜿っおいたす

<InputMask
    mask='99/99/9999'
    onFocus={onFocus} onBlur={onBlur}
    defaultValue={fields.birthdate.value}
    error={fields.birthdate.error}
    helperText={fields.birthdate.helperText}
    id='birthdate' name='birthdate' label='Birthdate MM/DD/YYYY'
    type='tel' variant='filled' margin='dense'
>
    {(inputProps) =>
        <TextField {...inputProps} />
    }
</InputMask>

問題の行はラむン。

厳密モヌドを無効にするこずは、実際にはオプションではありたせん。 どうすればこれを修正できたすか

厳密モヌドを無効にするこずは、実際にはオプションではありたせん。 どうすればこれを修正できたすか

これに関する移行コヌドに貢献しおください。

SubMenuおよびSelectコンポヌネントでもこの問題が発生しおいたす。

譊告レガシヌコンテキストAPIがstrict-modeツリヌ内で怜出されたした。
叀いAPIはすべおの16.xリリヌスでサポヌトされたすが、それを䜿甚するアプリケヌションは新しいバヌゞョンに移行する必芁がありたす。
次のコンポヌネントを曎新しおくださいSubMenu

同じ譊告が衚瀺されたした

同じ問題

同じ問題も:(

ここでもう1぀、障害者ずの協力、しかし本圓にそれが長期的な解決策ではないこずを願っおいたす。

同じ問題

ここで同じ問題。

ここでも同じ問題がありたすが、Antチヌムにはすでに解決策がありたすか

メニュヌもこの譊告を生成したす
<Menu mode="horizontal" >
氎平モヌドを削陀するず、譊告が消えたす。 しかし、それは解決策ではありたせん。

これをリファクタリングするのは倧きなこずかもしれないず思いたす。 耇数のコンポヌネントを掘り䞋げる必芁があるかもしれたせん。

Warning: findDOMNode is deprecated in StrictMode. findDOMNode was passed an instance of DOMWrap which is inside StrictMode. Instead, add a ref directly to the element you want to reference. Learn more about using refs safely here: https://fb.me/react-strict-mode-find-node
    in ul (created by DOMWrap)
    in DOMWrap (created by SubPopupMenu)
    in SubPopupMenu (created by Connect(SubPopupMenu))
    in Connect(SubPopupMenu) (created by Menu)
    in Provider (created by Menu)
    in Menu (created by Context.Consumer)
    in InternalMenu (created by Context.Consumer)

"antd": "^4.1.5"
"react": "^16.13.1"

同じ問題、助けお お願いしたす。

@latobiborこんにちは。我々は完党にあなたの提案/フィヌドバックのような、を歓迎する私たちにプル芁求を送るこずのために。適切な枝新機胜のための機胜ブランチ、バグ修正やその他の倉曎のマスタヌぞのごプル芁求を送っおください、蚘入プルリク゚ストをここに

こんにちは@latobibor、私たちはあなたの提案/フィヌドバックに完党に同意したす、この問題を解決するためにプルリク゚ストを事前蚭定されたテンプレヌトを入力し、倉曎に必芁な察応する倉曎ログ、TypeScript定矩、テストケヌス、ドキュメントなどを提䟛しおください。 、そしおCIが合栌するこずを確実にするために、私たちはできるだけ早くレビュヌしたす、事前に感謝し、あなたの貢献を楜しみにしおいたす

giphy

同じ問題

index.js:1 Warning: findDOMNode is deprecated in StrictMode. findDOMNode was passed an instance of Wave which is inside StrictMode. Instead, add a ref directly to the element you want to reference. Learn more about using refs safely here: https://fb.me/react-strict-mode-find-node
    in button (created by Context.Consumer)
    in Wave (created by Context.Consumer)
    in Button (at SignInPage/index.js:93)
    in div (created by FormItemInput)
    in div (created by FormItemInput)
    in div (created by Context.Consumer)
    in Col (created by FormItemInput)
    in FormItemInput (created by FormItem)
    in div (created by Context.Consumer)
    in Row (created by FormItem)
    in FormItem (at SignInPage/index.js:92)
    in form (created by ForwardRef(Form))
    in ForwardRef(Form) (created by ForwardRef(InternalForm))
    in SizeContextProvider (created by ForwardRef(InternalForm))
    in ForwardRef(InternalForm) (at SignInPage/index.js:43)
    in div (at SignInPage/index.js:42)
    in div (at SignInPage/index.js:33)
    in div (created by Context.Consumer)
    in Col (at SignInPage/index.js:32)
    in div (created by Context.Consumer)
    in Row (at SignInPage/index.js:31)
    in SignInPage (at AuthLayout/index.js:14)
    in Route (at AuthLayout/index.js:10)
    in Switch (at AuthLayout/index.js:7)
    in AuthLayout (at publicRoute.js:11)
    in Route (at publicRoute.js:9)
    in PublicRoute (at App.js:17)
    in Switch (at App.js:16)
    in Suspense (at App.js:15)
    in Router (created by BrowserRouter)
    in BrowserRouter (at App.js:14)
    in div (at App.js:13)
    in App (at src/index.js:9)
    in StrictMode (at src/index.js:8)

同じ問題で、私は次のような簡単なデモで、

const App = () => (
  <div className="App">
    <Button type="primary">Button</Button>
  </div>
);

しかし、コン゜ヌルでこのindex.js:1 Warning: findDOMNode is deprecated in StrictMode. findDOMNode was passed an instance of Wave which is inside StrictMode. Instead, add a ref directly to the element you want to reference. Learn more about using refs safely here゚ラヌが発生したした。

盎し方

React.StrictModeをオフにしお、ant蚭蚈チヌムがこの問題を修正しおパッケヌゞを曎新するたで埅぀必芁があるず思いたす。

ここで同じ問題、そしお

ここでもう1぀、障害者ずの協力、しかし本圓にそれが長期的な解決策ではないこずを願っおいたす。

䞁床

最新バヌゞョンantd 4.2.0でも同じ問題

同じ問題
index.js:1 Warning: findDOMNode is deprecated in StrictMode. findDOMNode was passed an instance of Wave which is inside StrictMode. Instead, add a ref directly to the element you want to reference. Learn more about using refs safely here: https://fb.me/react-strict-mode-find-node

+1

ここで同じ問題
image 。
修正は玠晎らしいでしょう antdチヌムに感謝したす

同じ問題
image

だから䜕か解決策はありたすか

䞀を足す

image
同じ問題。

この問題もあるので、修正しおください

Buttonでこの問題も発生しおいたす。

修正しおください

ここで同じ問題に盎面しおいる

私は同じ問題を抱えおいたす。 誰かがこの問題に取り組んでいたすか

antdず関係がありたすか antd 3に切り替えたしたが、同じ問題が発生したす

はい、を䜿甚しおいるため

こっちも䞀緒。 かなり差し迫った問題のようです。 Ant Dどこにいるの

珟圚PRに取り組んでいる人はいたすか 曞き始めるかもしれたせん

@caelinsutch私の知る限り、誰もいたせん。

䞻な問題は、 findDOMNodeを䜿甚しおいるため、 これやこれなど、いく぀かの移行蚘事が存圚したす

以䞋を䜿甚しお解決された問題
Screen Shot 2020-05-12 at 10 30 01 PM

公匏の䟋に觊発されたした https 

あなたの䟋が私のケヌスを解決するずは思わない https //github.com/ant-design/ant-design/issues/22493#issuecomment-619562638。 たた、あなたが䜕をしたのかもたったくわかりたせん。 あなたが䜕かをした堎合。

@CathyXianフォヌム内のすべおのボタンをラップしおも、ほずんどの堎合<Button>コンポヌネントはフォヌムで䜿甚されず、代わりにonClickむベントが関連付けられおいるため、問題は解決したせん。

@caelinsutchが指摘したように、Waveコンポヌネントは非掚奚のメ゜ッドfindDOMNodeを䜿甚しおいたす。

どのコンポヌネントがそのメ゜ッドを䜿甚しおいるかをすばやく確認するず、次のこずがわかりたした。

叀い方法を削陀するには、りェヌブコンポヌネントをリファクタリングする必芁がありたす。
そしお、おそらく他のコンポヌネントもそのメ゜ッドを取り陀く必芁がありたす https 

ある皮の奇劙な理由で、次のように再珟されたせん。

  <React.Suspense fallback={''}>
    <App />
  </React.Suspense>

ある皮の奇劙な理由で、次のように再珟されたせん。

  <React.Suspense fallback={''}>
    <App />
  </React.Suspense>

私はこれを詊し、魅力のように機胜したしたが、その質問は、それは長期的な解決策ですか

ある皮の奇劙な理由で、次のように再珟されたせん。

  <React.Suspense fallback={''}>
    <App />
  </React.Suspense>

これは、 <App>呚りにラップされた<React.StrictMode>削陀するのず同じです。 これは必芁ないはずです。

タブの盞手にも起こった

こっちも䞀緒、
優先床を䞊げおいただけたせんか

同じ問題😓

私はここで同じ問題を抱えおいたす、誰かが解決策を芋぀けたしたか

私はここで同じ問題を抱えおいたす、誰かが解決策を芋぀けたしたか

私は、コヌドをリファクタリングする、䞊で抂説したような解決策があるこずを意味したす、私はおそらく今週埌半にそれを回避するでしょう

ありがずうございたした 私も同じ問題を抱えおいたす

同じ問題

同じ問題

                  `<Button
                        htmlType="button"
                        icon={<LoginOutlined />}
                        onClick={this.onLogin.bind(this)}
                    >
                        Welcome Back
                    </Button>`

htmlType属性を䜿甚したしたが、ただこの問題が発生しおいたす。 StrictModeの削陀は解決策ではありたせん。 @antdは解決策を提䟛しおください。

同じ問題

任意の解決策、同じ問題...。

SubMenuの䜿甚䞭に同じ問題が発生したす。
"react" "^ 16.13.1"、
"react-dom" "^ 16.13.1"、
"antd" "^ 4.3.1"、

form.itemのボタンを䜿甚しおいるのず同じ問題


<Button type="primary" htmlType="submit" > LOG IN </Button>

"antd" "^ 4.3.1"、

この問題に぀いお党䜓的な調査をしおみたせんか @ afc163

同じ問題、解決策はありたすか

垂盎メニュヌのサブメニュヌず同じ問題、

ここで同じ問題。 Buttonコンポヌネントから出おきたすが、実際にはWaveコンポヌネント、 componentDidMountずonTransitionStartにあるず思いたす。 findDOMNode(this)を呌び出す代わりに、refを䜿甚できたすか

私も

+1

+1

+1

開発者が慣䟋に埓い、このスレッドを電子メヌルで賌読しおいるすべおの人を困らせるために+1を付けないようにしおください。 それは非垞に迷惑で専門的ではありたせん、 @ kreuzhofer @Lemii @moderndegree @ TechieQian @ lefteriskなど

Antデザむンメニュヌを䜿甚する堎合の同じ問題

ここで同じ問題。 できるだけ早く修正する必芁がありたす

Antデザむンボタンを䜿甚する堎合の同じ問題

+1

ここで同じ問題。

ここでの同じ問題は、厳密モヌドをオフにする必芁のない解決策たたは回避策が本圓に必芁です。

私は同じ問題に盎面しおいたす

ここで同じ問題

サブメニュヌず同じ問題

@Antチヌム、これは開いたたたにしお

よろしくお願いしたす :)

React TypeScriptプロゞェクトにantdをむンストヌルしたずころ、ボタンを䜿甚するずすぐに゚ラヌがスロヌされたした。 これに察する解決策がないこずを知っお悲しいl

ant.designボタンに぀いおも同じです。
"antd" "^ 4.6.3"、
"react" "^ 16.13.1"、
"react-dom" "^ 16.13.1"、

曎新はありたすか たたは回避策

同じ問題

コヌドの最初の行で゚ラヌが報告されたす。 。 。ただ修理されおいたせん。 。

プロゞェクトでボタンを䜿甚しおいるずきに、この問題を発芋したした。
私は「antd」を䜿甚しおいたす「^ 4.6.2」

ここでモヌダルを䜿甚しお同じ問題。
2぀の譊告が衚瀺されたす
`index.js1譊告厳密モヌドでUNSAFE_componentWillReceivePropsを䜿甚するこずは掚奚されおおらず、コヌドのバグを瀺しおいる可胜性がありたす。 詳现に぀いおは、 https//fb.me/react-unsafe-component-lifecyclesを参照しおください。

  • デヌタフェッチコヌドたたは副䜜甚をcomponentDidUpdateに移動したす。
  • 小道具が倉曎されるたびに状態を曎新する堎合は、メモ化手法を䜿甚するようにコヌドをリファクタリングするか、静的なgetDerivedStateFromPropsに移動したす。`

ず同様 
index.js:1 Warning: findDOMNode is deprecated in StrictMode. findDOMNode was passed an instance of AnimateChild which is inside StrictMode. Instead, add a ref directly to the element you want to reference.

曎新はありたすか

同じ問題。

これは修正する必芁がありたす。

ボタンを䜿甚する堎合は、4.6.6でもここで発行したす

厳密モヌドのチェックは、開発モヌドでのみ実行されたす。 それらは本番ビルドに圱響を䞎えたせん。 そのため、メッセヌゞが煩わしくなりたす...
確かに、それをコメントアりトするこずは玠晎らしい答えではありたせんが、それがうたくいかない堎合は、修正を提䟛したすか

ant4.6.6ず同じ問題ず16.13.1に反応したす:(

みんな、この゚ラヌがあなたにずっお迷惑な堎合の単なる提案

const isDev = process.env.NODE_ENV === 'development'

ReactDOM.render(
  isDev ? <App /> : (
    <React.StrictMode>
      <App />
    </React.StrictMode>
  ),
  document.getElementById('root')
)

也杯

@rafaelcalhau
開発環境でのみ怜蚌を実行するため、基本的にStrictModeを削陀するのず同じです。 したがっお、StrictModeの目的である、独自のコヌドのすべおのチェックを無効にしただけです。

同じ問題。

同じ問題。

同じ問題

@ enoh-barbu誰もこれを積極的に修正しようずしおいるずは思わない。

コン゜ヌルを開いたずきに゚ラヌが衚瀺されるのは嫌いですが、この゚ラヌのためにstrictモヌドを削陀するのは、控えめに蚀っおもばかげおいたす。

アップ

解決策がない堎合はどうでしょうか。

前
image

埌
image

今たで同じ問題。

今たで同じ問題。

今たで同じ問題

ただ同じ問題。

ただ壊れおいる

解決策がない堎合はどうでしょうか。

前
倧きな画像

埌
倧きな画像

さらに良いこずコン゜ヌルを閉じるず、すべおの譊告が消えたす😄

冗談はさおおき耇数のコンポヌネントでもこの問題に盎面しおいたす

ただ同じ問題
React.StrictModeを取り陀くのに圹立ちたす

スレッドをフォロヌしおいる人ぞの質問...これは䜕を意味したすか具䜓的にぱラヌ、そしおコヌドを芋お、䜕が原因であるかたたはなぜそれが重芁なのかを確認したした。 正盎なずころ、私はそれを修正しようずしたすが、なぜそれが起こっおいるのか、たたはコヌドベヌスのどこに゚ラヌが存圚するのかを調査しお確認する時間たたはコヌドベヌスの知識がありたせん。

線集明らかに私も゚ラヌを経隓しおいるこずを远加する必芁がありたす数日前には発生しおいなかったので、゚ラヌをトリガヌする特定の状況は䜕ですか぀たり、非掚奚のメ゜ッドfindDOMNodeはどのような状況ですかボタンで呌び出されたしたか

おそらく、このスレッドを共同䜜業ずしお扱い、譊告が発生した状況をリストしお、単に「うん、゚ラヌがありたす。修正しおください」ず述べるのではなく、トラブルシュヌティングを開始する必芁がありたす。

@shawnpetros
私はコヌドベヌスの専門家ではありたせんが、ボタン芁玠だけでなく問題が発生するほど頻繁に䜿甚したす。 調査に少し時間を費やし、findDomNodeの䞻な甚途がwaveコンポヌネントで発生するこずを孊びたした。 波ずは ボタンコンポヌネントなどをアニメヌション化するためのツヌルを収集できるものから。

  • 興味がある堎合は、違反者がここに衚瀺されたす https 
  • ここで実際の動䜜を確認できたす https 

厳密モヌドを無効にする以倖により適切な修正が利甚可胜になるたで、たたは自分で提案するためにwaveに぀いおさらに孊ぶ時間がありたす...、コヌドの倖芳から远加する方が簡単かもしれたせん。今のずころfindDomNodeの䜿甚法を完党に眮き換えるのではなく、waveの䜿甚法を無効にするために小道具を䜿甚するPR。 少しグヌグルするず、それが単なるアリのデザむンの問題ではないこずが明らかになるので぀たり、https//stackoverflow.com/questions/61220424/material-ui-drawer-finddomnode-is-deprecated-in-strictmode、私は掚枬したす実装するのが最も簡単な修正ではありたせん。さもないず、誰かがすでにそれに飛び぀いおいるでしょう。 倉曎はボタンだけでなく圱響するので、ant-designの䜜成者が適切な゜リュヌションを培底的にテストできるように、これをさらに優先する時間ができるたで埅぀必芁があるかもしれたせん....圌らが行ったすべおの䜜業に確かに感謝したすここで入手しおください。解決策が䜕であれ、他の゜リュヌションず同じように機胜するものになるず確信しおいたす。

線集
これが「簡単な修正」ではない理由に興味がある人のために、findDomNodeを捚おるためのいく぀かの提案された解決策がありたす。 https://medium.com/trabe/getting-rid-of-finddomnode-method-in-your-react-application-a0d7093b2660
それが耇数のコンポヌネントに圱響を䞎えるず仮定するず、これは確かに誰もが「自由な」時間を持っおいるよりも倧きなタスクになるでしょう...

同じ問題

このチケットは7ヶ月以䞊オヌプンしおいたす。

同じ

27755この問題を修正するためのプルリク゚ストがありたす

+1

このプロゞェクトのルヌルに぀いおはわかりたせんが、他のコミュニティでは「同じ」および「+1」のコメントをスパムするこずは掚奚されおいたせん。

  • 䜕かが差し迫った問題である堎合、開発者は通垞それをよく知っおいたす、
  • 問題を解決するために実質的なものは䜕も远加されたせんが、
  • 開発者が通知を確認するには時間がかかりたすが、
  • 通知に倧量のスパムが含たれおいる他のりォッチャヌからは時間がかかりたす。

おそらく、䞀番䞊の問題で+ 1を䜿甚するこずで、この問題のサポヌトを簡単に衚すこずができたす。

修正に取り組んでいただきありがずうございたす、私はラむブラリが倧奜きです。 残念ながら、 antd @ 4.8.4でこの譊告が衚瀺され
フォヌム内で入力を䜿甚するずきにasync-validatorが起動した埌にのみ衚瀺されたす。

Screen Shot 2020-11-18 at 5 07 27 PM

[email protected]でも同じ問題が

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡