React不会渲染自动完成功能

React.js

→笑里藏刀↓

2020-03-16

我该如何做出反应渲染呢?

<input
    id={field.name}
    className="form-control"
    type="text"
    placeholder={field.name}
    autocomplete="off"
    {...field}/>

第1660篇《React不会渲染自动完成功能》来自Winter(https://github.com/aiyld/aiyld.github.io)的站点

9个回答
老丝猿阿飞 2020.03.16

除了@azium的答案外,<input>还应将其放在<form>标签中,然后autoComplete可以使用

十三Itachi 2020.03.16

我也尝试了许多选项,但最终要做的是<form><div>标签替换标签,并手动管理该表单中的每个输入。

GilGilPro 2020.03.16

Chrome自动完成功能会通过添加new-password属性来关闭。

autoComplete="new-password"

实际操作如下:

<input            
type="password"
autoComplete="new-password"
/>

有关以下内容的更多讨论:

Chrome自动完成讨论

西门达蒙 2020.03.16

大写字母“ C” autoComplete在React文档中提到了这一点:

https://facebook.github.io/react/docs/tags-and-attributes.html

小哥猿 2020.03.16

如果您已经阅读正确的答案,但仍然遇到此问题(尤其是在Chrome中),欢迎加入俱乐部...因此,请检查我是如何做到的:

<form autoComplete="new-password" ... >
        <input name="myInput" type="text" autoComplete="off" id="myInput" placeholder="Search field" />
</form>

笔记

  • 形式不一定是输入元素的直接父代
  • 输入需要名称属性
  • 它也可以与React-Bootstrap <FormControl/>标签一起使用(而不是<input/>
飞云小卤蛋 2020.03.16

autoComplete =“ none”-为我工作。

Davaid阳光伽罗 2020.03.16

我只用一行就解决了:

如果您对“ changeHandler()”和组件状态使用推荐的方式,只需插入:

changeHandler = (e) => {    
  if (!e.isTrusted) return;
  ... your code
}

有关该changeHandler()的更多信息-内容:https ://reactjs.org/docs/forms.html#受控组件

小小仲羽 2020.03.16

根据Mozilla文档,必须设置一个无效值才能真正关闭自动补全功能。在某些浏览器中,即使该属性设置为off,仍会给出自动完成建议。

这对我有用(react-bootstrap):

<FormControl
  value={this.state.value}
  autoComplete="nope"
  {...props}
/>
小胖宝儿 2020.03.16

您应该输入:

autoComplete="new-password"

这将删除自动完成功能

问题类别

JavaScript Ckeditor Python Webpack TypeScript Vue.js React.js ExpressJS KoaJS CSS Node.js HTML Django 单元测试 PHP Asp.net jQuery Bootstrap IOS Android