首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过道具反应功能组件使用react表和类型记录?

如何通过道具反应功能组件使用react表和类型记录?
EN

Stack Overflow用户
提问于 2022-01-31 21:11:36
回答 1查看 657关注 0票数 0

我想传递两个参数来使用react表和类型记录来反应功能组件。

下面是我的代码,

代码语言:javascript
复制
type NameCellValue = {
    name: string;
    type: string;
}

type NameCellProps = {
    value: NameCellValue;
    mode: Mode;
    canOpen: boolean;
}

const NameCell: React.FC<NameCellProps> = ({
    value: {name,type},
    mode,
    canOpen
}) => {
    console.log(mode) //this is undefined
    console.log(canOpen) //this is undefined
    canOpen: boolean,
}

const buildColumns : (
    mode: Mode,
    canOpen?: boolean
) => Column<Data>[] = (mode, canOpen) => [
    {
        Header: 'Name',
        id: 'name',
        accessor: ({name, type}) => ({
            name,
            type,
        }),
        Cell: NameCell(mode, canOpen), //how do i pass mode and canOpen to NameCell
    } as Column<Data, NameCellProps['value'] | NameCellProps['mode] | NameCellProps['canOpen']>,
    ];


const ParentComponent = () => {
    const columns = buildColumns(mode, canOpen);
    return (
        //some jsx
    );
}

上面的方法不起作用。它给出了错误“类型模式的参数不能在线分配给PropsWithChildren类型的参数”

代码语言:javascript
复制
Cell: NameCell(mode, canOpen)

另外,当我在NameCell中记录NameCell和NameCell的值时,它们是未定义的。

有人能帮我解决这个问题吗。谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-31 21:52:45

您应该始终使用角括号语法呈现react组件,例如:

代码语言:javascript
复制
<NameCell value={value} mode={myModeHere} canOpen />

可以直接调用函数,但必须将道具作为对象传递,如下所示:

代码语言:javascript
复制
NameCell({ value, mode: myModeHere, canOpen: true })

但是,使用尖括号,如第一个例子,除非你有一个非常好的理由。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70932886

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档