Ich erhalte eine Warnung mit ReactTags
:
Warning: Failed prop type: You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set either `onChange` or `readOnly`.
in input (created by Input)
in div (created by Input)
in Input (created by ReactTags)
in div (created by ReactTags)
in div (created by ReactTags)
Von dem, was hier gesagt wird , sollten wir https://github.com/i-like-robots/react-tags/blob/master/lib/Input.js#L78 wahrscheinlich um etwas ändern wie:
defaultValue={query}
Was denken Sie?
Vielen Dank!
Ich habe das gleiche Problem, irgendwelche Vorschläge?
Ich habe das leider nicht selbst gesehen. Könnten Sie mir bitte mitteilen, welche React-Version Sie verwenden?
Ich verwende React 16.3.2
@i-like-robots Ich habe auch dieses Problem.
Ich habe einen PR hinzugefügt, um in defaultValue zu ändern, aber wenn Sie einen Hack wünschen, der die Warnung vermeidet, bis dies behoben ist, können Sie Ihrer Klasse eine noop-Methode hinzufügen, die ReactTags verwendet, und als onChange für Ihre Komponente darauf verweisen. Es ist hässlich, aber es wird die Warnungen stoppen.
noOp() {
// does nothing
}
<ReactTags
tags={this.state.tags}
suggestions={this.state.suggestions}
handleAddition={this.handleTagAddition}
handleDelete={this.handleTagDelete}
inputAttributes={{ onChange: this.noOp }}
/>
Dies ist ein interessantes Thema, das vor einigen Jahren in https://github.com/facebook/react/issues/1118 ausführlich diskutiert wurde (obwohl ich diese Warnung bei keiner Version von React einschließlich 16.3.2 gesehen habe! )
An der aktuellen Implementierung ist technisch nichts _falsch_, aber ich stimme zu, dass Warnungen, die die Konsole überladen, ärgerlich sind und vermieden werden sollten.
Ich bin mir nicht sicher, ob die Einstellung von defaultValue
die richtige Lösung ist, da dies unbeabsichtigte Folgen haben kann (siehe https://github.com/i-like-robots/react-tags/pull/139#issuecomment-431006214 ), aber es sind möglicherweise mehrere andere Problemumgehungen verfügbar.
Wenn ich mir das genauer ansehe, kann ich sehen, dass diese Warnung 5 Bedingungen hat:
Dies ist die erste Bedingung, die mich interessiert, da dies standardmäßig zu true
ausgewertet werden sollte, da der Standardwert für state.query
eine leere Zeichenfolge ist. Dies sollte daher dazu führen, dass die Funktion vorzeitig zurückkehrt und keine Warnung ausgibt.
Um diese Warnung auszulösen, musste ich daher den Standardzustand (https://github.com/i-like-robots/react-tags/blob/master/lib/ReactTags.js#L35) ändern, um einen wahrheitsgetreuen Wert zu erhalten.
Hat jemand von euch, der diese Erfahrung macht, ein Beispiel, das das Problem demonstriert, damit ich es mir genauer ansehen kann?
Hilfreichster Kommentar
Ich habe einen PR hinzugefügt, um in defaultValue zu ändern, aber wenn Sie einen Hack wünschen, der die Warnung vermeidet, bis dies behoben ist, können Sie Ihrer Klasse eine noop-Methode hinzufügen, die ReactTags verwendet, und als onChange für Ihre Komponente darauf verweisen. Es ist hässlich, aber es wird die Warnungen stoppen.