我有一个动态创建的React元素列表,它是通过在render函数中运行一个方法创建的:
surveyFileErrors.map((errorData, i) => {
return arr.push(<FileErrorCard ref={} key={errorData.id} errorData={errorData} />);
}
我正在尝试为每个元素创建一个Ref,以便我可以使用向上和向下箭头将焦点更改为元素。这是我的构造函数:
constructor(props) {
super(props);
this.state = {
fileErrorList: [],
activeList: null,
activePage: 1,
};
this.errorRefs = [];
}
我正在尝试在React 16.3中使用新的React.createRefs(),但它给出的示例显示我需要在构造函数中使用React.createRefs,它将在我开始创建上面的列表之前执行。此列表仅在操作检索错误列表后创建。我可以提供更多信息,但我不想写太长的帖子。
这就是我使它工作的方式,希望它有所帮助:
const refObj = {};
surveyFileErrors.map((errorData, i) => {
refObj[i] = React.createRef();
return arr.push(<FileErrorCard ref={refObj[i]} key={errorData.id}
errorData={errorData} />);
}