J'ai essayé de convertir ce javascript plain pour réagir avec USEREF Hook.
JS plain: https://codesandbox.io/s/frienly-maxwell -UB18W? File = / src / index.js P>
réagit: https://codesandbox.io/s/stry-frog-urzjp?file=/src/app.js p>
export default function App() {
const fileElem = useRef(null);
return (
<div className="App">
<input
id="fileElem"
multiple
accept="image/*"
style={{ display: "none" }}
/>
<button onClick={() => fileElem.current.click()}>
Select some files
</button>
</div>
);
}
3 Réponses :
à l'intérieur de votre entrée au lieu d'utiliser C'est comme ça que nous le faisons dans réagir. p> id = 'fileelem' code> Utiliser ref = {fileelem} code> et cela devrait fonctionner correctement. P>
Changer fileelem.current.click () code> à fileelem.current.current.click code>. Avec les parenthèses, vous êtes appelant forte> la fonction de clic sur la référence qui l'empêche d'être immédiatement cliqué, puis d'attribuer la valeur de retour au onclick code> gestionnaire de l'élément de réact. Au lieu de cela, vous voulez affecter le gestionnaire de clic de Fileelem code> dans le gestionnaire de clic de l'élément de réact. P>
Vous devez utiliser cocher < Un href = "https://reactjs.org/docs/refs-and-thi-dom.html" rel = "nOfollow noreferrer"> Ce pour utiliser ref = {fileelem} code> et type = "fichier" code>, comme indiqué ci-dessous: ref code>. < / p> p>
Veuillez poster le code pertinent dans votre question / problème (en plus des liens), avec des étapes de reproduction appropriées, si nécessaire. Comment demander