React 无法将道具传递给组件

Posted

技术标签:

【中文标题】React 无法将道具传递给组件【英文标题】:React can't pass props to component 【发布时间】:2020-12-21 23:14:11 【问题描述】:

我无法将道具从 App.tsx 传递给我的子组件,我不知道为什么。我已经在网上看了 2 个小时,但没有有效的解决方案。有谁知道问题是什么?它也给了我以下错误:

"没有重载匹配这个调用。 Overload 1 of 2, '(props: Readonly): CartView', 给出了以下错误。 输入'短语:字符串; ' 不可分配给类型 'IntrinsicAttributes & IntrinsicClassAttributes & Readonly & Readonly'。 类型“IntrinsicAttributes & IntrinsicClassAttributes & Readonly & Readonly'。 Overload 2 of 2, '(props: Props, context?: any): CartView',给出了以下错误。 输入'短语:字符串; ' 不可分配给类型 'IntrinsicAttributes & IntrinsicClassAttributes & Readonly & Readonly'。 类型“IntrinsicAttributes & IntrinsicClassAttributes & Readonly & Readonly'.ts(2769)"

组件

import React,  Component  from 'react';

class CartView extends Component<Props, State>
    render()
        return(
            <div>
                <p>this.props.phrase</p> <--- This doesn't work. It only autofills to use this.props.children.
            </div>
        )
    


export default CartView;

App.tsx

import React from 'react';
import CartView from './components/cart/Cart';

type Props = ;
type State = ;

function App() 
  return (
    <div className="App">
      <CartView phrase="Hello"/>
    </div>
  );


export default App;

【问题讨论】:

【参考方案1】:

您已为组件 Cartview 使用了 PropsState 接口

import React,  Component  from 'react';

// Create Interface 
interface Props 
    phrase: string


class CartView extends Component<Props, >
    // add a constructor 
    constructor(props: Props) 
        super(props);
    
    render() 
        return (
            <div>
                <p>this.props.phrase</p> 
            </div>
        )
    


export default CartView;

【讨论】:

以上是关于React 无法将道具传递给组件的主要内容,如果未能解决你的问题,请参考以下文章

使用 Typescript(TSX 文件)将道具传递给 React 中的子组件

通过道具 React 将 WS 连接传递给孩子

无法将道具传递给组件的数据

无法将道具从父组件传递给子组件

在使用 React Router v5 和 Redux 时,无法弄清楚如何将 props 传递给组件

将状态作为道具传递给子组件不起作用