相关文章推荐
纯真的领结  ·  npm ...·  1 周前    · 
谦逊的硬币  ·  react ...·  1 周前    · 
完美的海龟  ·  DataGrip 连接sqlserver ...·  1 月前    · 
没有腹肌的馒头  ·  elasticsearch ...·  7 月前    · 
文武双全的四季豆  ·  js ...·  8 月前    · 

react的refs已经是过时的API了,不适合用于循环动态赋值ref,最近又在项目中遇到需要循环动态赋值ref,这是用createRef的方法,在此记录一下,亲测有效!

handleChange = (key) => {
    this[`input${key}Ref`] = React.createRef();
handleSave = () => {
    const { list } = this.state;
    for (let item of list) {
        if (item.value && item.value.length > 100) {
          Toast.show(`${item.name}不能超过100个字符`);
          this[`input${item.key}Ref`].current&&this[`input${item.key}Ref`].current.focus();
          return;
    // 写接口等其他逻辑
render() {
    const { list } = this.state;
            list.map(item=>{
              <Input
                  ref={this[`input${item.key}Ref`]}
                  value={item.value}
                  onChange={() => { this.handleChange(item.key) }}
        <Button type="primary" onClick={this.handleSave}>保存</Button>
                    handleChange = (key) =&gt; {    this[`input${key}Ref`] = React.createRef();}handleSave = () =&gt; {    const { list } = this.state;    for (let item of list) {        if (item.value &amp;&amp; item.value.length &gt; 100) {          Toast.show(`${i.
    const [sss, setsss] = useState(9)
    const refs = [] //存储ref的数组
    const [ren, setRen] = useState([
				
通过React.createRefref对象 通过元素的ref属性可以附加到React元素上 一般通过构造器中给this的属性赋值一个ref,方便整个组件使用 ref只要传递到react元素中,就可以利用ref的current属性访问到该真实DOM节点 ref在componentDidMount和componentDidUpdate触发前更新 current里是null的现象 由于打印时,this.modalRef才刚刚声明,current是null,但是current是个引用值,展开时访问的是.
// React动态创建ref const [refArr, setRefArr] = useState<React.RefObject<HTMLDivElement>[]>([]); const dataList = [1, 2, 3, 4, 5]; // 创建一个新的数组来存储ref const arr: React.RefObject<HTMLDivElement>[] = []; // 动态创建ref for (let i = ..