我已成功连接我的组件Details.js
以管理组件本身的状态,这些是步骤:
你可以在这里看到演示
详细信息.js
import React, { useState, useEffect, useRef, ref, useImperativeHandle, forwardRef } from "react";
const cleanValue = () => {
setDataHomeTeam([]);
setDataAwayTeam([]);
};
useImperativeHandle(fowardedRef, () => {
return {
cleanValue: cleanValue
};
});
const ConnectedDetails = connect(
mapStateToProps,
mapDispatchToProps,
null
)(Details);
export default forwardRef((props, ref) => {
return <ConnectedDetails {...props} fowardedRef={ref} />;
});
应用程序.js
const ref = useRef();
<button onClick={() => ref.current.cleanValue()} type="button">Reset</button>
<Details ref={ref} />
它有效,演示在这里。
我的问题是当我将这个元素从App.js移动到Leagues.js 时,正如您在演示中看到的那样(有两种情况)
联赛.js
71 号线
<button onClick={() => ref.current.cleanValue()} type="button">Reset</button>
单击它时出现此错误=> TypeError 无法读取未定义的属性'cleanValue'
可能吗 ?如果是,我做错了什么,我该如何解决?