javascript - 使用 refs 将焦点集中在动态生成的组件上

标签 javascript reactjs react-ref

我必须创建一些动态引用才能将焦点集中在 Input 上它包含在自定义组件中。

目前,这就是我渲染元素的方式:

const countRow = denom => {
  this[`${denom.id}-ref`] = React.createRef();
  return (
    <CountRow
    ref={this[`${denom.id}-ref`]}
    id={`${denom.name.singular.toLowerCase()}-${denom.id}`}
    tenderValue={denom.value}
    label={denom.denomination.label}
    onChange={(e, value) => this.handleBillsOnChange(e, denom)}
    onEnter={() => this.onEnter(denom)}
  />
}

{itterableArray.map(item => countRow(item)}

在我的onEnterFunction我正在尝试从 <CountRow /> 移动到下一个。

在该函数的末尾:

onEnter = denom => {
  //some stuff that doesn't matter
  this[`${denom.id}-ref`].focus()
}

onEnter 的最后一行功能总是爆炸。说:
TypeError: _this["".concat(...)].focus is not a function

有人可以指导我需要做什么才能选择特定的焦点 <CountRow />

最佳答案

示例

const countRow = denom => {
    let ref=React.createRef();
    let onEnter = () => {
        ref.current.focus();
    }
    //setTimeout(onEnter,3000)
    return (
        <CountRow
            ref={ref}
            //   id={`${denom.name.singular.toLowerCase()}-${denom.id}`}
            //   tenderValue={denom.value}
            //   label={denom.denomination.label}
            //   onChange={(e, value) => this.handleBillsOnChange(e, denom)}
            onEnter={onEnter}
        />)
};

class CountRow extends React.Component {
    constructor(props) {
        super(props);
        this.myRef=React.createRef();
        this.focus=()=>this.myRef.current.focus(); 
    }
    render() {
        return <input type="text" ref={this.myRef}/>
    }
}

关于javascript - 使用 refs 将焦点集中在动态生成的组件上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53878876/

相关文章:

javascript - 两个日期比较 - 结束日期应大于 react redux 验证中的开始日期

reactjs - React SPA 中的 msal - 使用从 AcquireTokenRedirect 收到的访问 token

javascript - 如何在 TypeScript 中使用 navigation.replace?

不带年份的 JavaScript 倒计时

javascript - React shouldComponentUpdate 太多递归

html - React 如何在 HOC 中获取包装组件的高度?

javascript - React 无法使用forwardRef 和useRef 读取ref 为null 的属性

React-Native 使用 Flatlist 滚动到顶部

javascript - Electron 生成器目标 : mac vs. mas

javascript - WebStorm 格式化长 JavaScript 对象属性值