Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 使用JHipster和React的adyen电子商务演示出现问题_Reactjs_Typescript_Jhipster - Fatal编程技术网

Reactjs 使用JHipster和React的adyen电子商务演示出现问题

Reactjs 使用JHipster和React的adyen电子商务演示出现问题,reactjs,typescript,jhipster,Reactjs,Typescript,Jhipster,我用最新的JHipster版本6.10.5创建了一个新项目。我毫无错误地遵循了演示之前的所有步骤。现在,当我在项目中复制/粘贴checkout-status.tsx的内容时,出现以下错误 TS2345: Argument of type '(props: { closeShoppingCart: (paymentType: any) => (dispatch: any) => Promise<any>; }) => JSX.Element' is not assig

我用最新的JHipster版本6.10.5创建了一个新项目。我毫无错误地遵循了演示之前的所有步骤。现在,当我在项目中复制/粘贴checkout-status.tsx的内容时,出现以下错误

TS2345: Argument of type '(props: { closeShoppingCart: (paymentType: any) => (dispatch: any) => Promise<any>; }) => JSX.Element' is not assignable to parameter of type 'ComponentType<Matching<{ closeShoppingCart: (paymentType: any) => Promise<any>; }, { closeShoppingCart: (paymentType: any) => (dispatch: any) => Promise<any>; }>>'.
  Type '(props: { closeShoppingCart: (paymentType: any) => (dispatch: any) => Promise<any>; }) => JSX.Element' is not assignable to type 'FunctionComponent<Matching<{ closeShoppingCart: (paymentType: any) => Promise<any>; }, { closeShoppingCart: (paymentType: any) => (dispatch: any) => Promise<any>; }>>'.
    Types of parameters 'props' and 'props' are incompatible.
      Type 'PropsWithChildren<Matching<{ closeShoppingCart: (paymentType: any) => Promise<any>; }, { closeShoppingCart: (paymentType: any) => (dispatch: any) => Promise<any>; }>>' is not assignable to type '{ closeShoppingCart: (paymentType: any) => (dispatch: any) => Promise<any>; }'.
        The types returned by 'closeShoppingCart(...)' are incompatible between these types.
          Type 'Promise<any>' is not assignable to type '(dispatch: any) => Promise<any>'.
            Type 'Promise<any>' provides no match for the signature '(dispatch: any): Promise<any>'.
Version: typescript 3.8.3, eslint 6.8.0
Time: 33830 ms
TS2345:类型为“(props:{closeShoppingCart:(paymentType:any)=>(dispatch:any)的参数=>承诺。

使用JHipster v6.8.0,这就是您看到错误的原因,因为较新JHipster版本中较新版本的TypeScript捕捉到了回购中使用的较旧版本遗漏的签名问题。我确实在JHipster 6.10.5上重现了该问题,以下是解决方案

src/main/webapp/app/entities/shopping cart/shopping cart.reducer.ts
中,将
const closeShoppingCart
的方法签名更改为以下内容。基本上,我们在这里为方法添加了更好的类型声明,以使TypeScript满意

export const closeShoppingCart:ICrudPutAction=(paymentType:string)=>async dispatch=>{
const result=等待调度({
类型:ACTION\u TYPES.UPDATE\u SHOPPINGCART,
有效负载:axios.put(`${apirl}/close/${paymentType}`)
});
返回结果;
};
同样在
src/main/webapp/app/modules/checkout/checkout-status.tsx
中,对于
const CheckoutStatus
您需要为
const{type}=useParams();
添加类型,只需更改为
const{type}=useParams();


注意:顺便说一句,您正在从特定提交进行复制,但repo本身有较新的提交,特别是对于您正在复制的部分,因此确保您没有混合来自不同提交的代码,如果您正在遵循,则不应成为问题。一旦您完成日志签出,则更新的提交会有一些影响rovements

我在GitHub上回答了相同的评论,并将其添加到此处作为答案。我遇到了一个新问题。当我在模块文件夹中创建路由以管理模块组件时,相应的组件从未加载。请说明如何在模块文件夹中添加路由,与在实体文件夹中添加路由的方式相同?很难说理想情况下,您可以按照实体或管理模块中相同的步骤操作