どのように反応させてレンダリングさせるのですか?
<input
id={field.name}
className="form-control"
type="text"
placeholder={field.name}
autocomplete="off"
{...field}/>
回答:
大文字の「C」autoComplete
。これはReactのドキュメントに記載されています:
https://facebook.github.io/react/docs/tags-and-attributes.html
あなたは置くべきです:
autoComplete="new-password"
これにより、オートコンプリートが削除されます
new
名前の中を認識しています。私は今それを名付けautoComplete="new-off"
、それはパスワードフィールドではない場合は私にはもう少し理にかなっている、それが正常に動作します:D
Mozillaのドキュメントによると、オートコンプリートを実際にオフにするには、無効な値を設定する必要があります。一部のブラウザでは、属性がオフに設定されていても、オートコンプリートの提案が表示されます。
これは私のために働いた(react-bootstrap):
<FormControl
value={this.state.value}
autoComplete="nope"
{...props}
/>
autocomplete
とautofill
?Chromeを使用している私には機能しないためです。同じフォームで送信された以前の値をフォームに自動入力し続けます。
正解を読んでもこの問題が発生する場合(特にChromeの場合)、クラブへようこそ...だから私がどのようにそれを達成したかを確認してください:
<form autoComplete="new-password" ... >
<input name="myInput" type="text" autoComplete="off" id="myInput" placeholder="Search field" />
</form>
ノート
<FormControl/>
タグ(の代わりに<input/>
)でも機能しますこれらのソリューションはいずれもChrome80では実際には機能しませんでした。
何時間もの試行錯誤の末、この非常に奇妙なハックがうまくいきました。
autoComplete="none"
それぞれに追加<input>
-Googleはautocomplete = "off"をスキップします<form>
または<div>
autoComplete="on"
。これは、コンテナの最後の要素である必要があります。そこで、フォームの下部に次の入力フィールドを追加しました。<input
type="text"
autoComplete="on"
value=""
style={{display: 'none', opacity: 0, position: 'absolute', left: '-100000px'}}
readOnly={true}
/>
autoComplete = "none"-私のために働きます。
Chromeのオートコンプリート地獄は、new-password属性を追加することでオフになります。
autoComplete="new-password"
実際には次のようになります。
<input
type="password"
autoComplete="new-password"
/>
に関する詳細:
これが「私のマシンで動作する」です
Chromeバージョン83.0.4103.116およびReact。私にとってうまくいったトリックは、フォーム内に配置してオートコンプリート属性を追加することのようです。注意これを非反応アプリで試す場合は、小文字のCでオートコンプリートを実行する必要があります
<form autoComplete="off">
<input type="text" autoComplete="new-password" />
</form>
そして
<form autoComplete="new-password">
<input type="text" autoComplete="new-password" />
</form>
ここや他の場所での提案のほとんどは2020年12月に失敗しました。フォームラッパーで、オートコンプリートを「newpassword」の「オフ」に設定し(どちらも機能しません)、onFocusを使用して、オートコンプリートではなくオートコンプリートを使用するようにしました。 (大文字ではありません)が、どれも役に立ちませんでした。
結局、mscott2005のアプローチは私にとってはうまくいきました(+1)が、他の人への回答として投稿しているより最小限の例のためにそれを微調整しました:
フォームは必要ありません。2つの入力タグだけが必要です。
autocomplete = "off"
希望のフィールドに
<input ... autoComplete="off" />
autocomplete = "on"
偽の隠されたフィールドに
<input
id="fake-hidden-input-to-stop-google-address-lookup"
autoComplete="on"
style={{ display: 'none'}}>
IDは、コメントを使用せずに実際にハッキングされているものを文書化するために私が持っている最高のものです。