我试图将prop类型从一个视图组件导出到另一个容器组件,并将其用作状态类型定义:
// ./Component.tsx
export type Props {
someProp: string;
}
export const Component = (props: Props ) => {
...etc
}
// ./AnotherComponent.tsx
import { Component, Props as ComponentProps } from "./Component";
type Props = {}
type State = ComponentProps & {};
class AnotherComponent extends React.Component<Props, State> {
state: State;
...etc
}
但是我进入控制台:
Module '"./Component "' has no exported member 'Props'.
关于我应该如何处理的任何建议?
我也尝试根据this文章使用查找类型,但没有任何乐趣。
最佳答案
尝试这样的事情。基本上扩展组件Props,以包括所需的导入。
export interface IProps extends PropsOfYouChoiceThatYouImport {
morePropsHere
}
也不包括国家规定的完全错误的IMO道具。做这样的事情:
interface IProps extends YourDesiredProps {
someProp: string | null;
// etc
}
interface IState {
something: boolean
// etc
}
export class ComponentName extends Component<IProps, IState> {
// Define you state, and props here. You need to initialize the correct IState
// and IProps above
}
至于控制台错误,我不确定您能做到这一点。尝试创建一个名为
Types
或Interfaces
的文件夹。然后导出那个。并根据需要在两个文件中将其导入为命名导出或默认导出。既然你想重用它。告诉我是否有帮助。如果您编写了一个快速的代码沙盒,我可以对其进行更多研究。
基本上我建议将其放入单独的文件中:
export type Props {
someProp: string;
}
关于javascript - typescript / react :模块没有导出成员,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55610105/