打字稿反应 - 迭代道具对象

发布于 2025-02-13 01:08:40 字数 785 浏览 0 评论 0原文

当使用打字稿时,如何通过React(或SolidJ)组件中的对象循环html?是否有正确的语法,或者需要工作?

export default function MyComponent(props: any) {
       
    return (
        <>
            {Object.values(props.someObject).map(value => {
                <div>{value.name}</div>       {/* Error: Object is of type 'unknown'. */}
            })}
        </>

    )
}

我正在关注本上下文的SolidJs教程: https://youtu.be/wsvmeg.be/wsvmeg7hpye 特别是ID喜欢使用&lt; for&gt;循环组件内置在solidjs中,我认为这只是地图的速记语法。

<For each={props.someObject}>
{value =>
    <div>{value.name}</div>       {/* Error: Object is of type 'unknown'. */}
}
</For>

When using TypeScript how do you loop through an object within a React (or SolidJS) components HTML? is there a correct syntax or does it require a work around?

export default function MyComponent(props: any) {
       
    return (
        <>
            {Object.values(props.someObject).map(value => {
                <div>{value.name}</div>       {/* Error: Object is of type 'unknown'. */}
            })}
        </>

    )
}

I'm following this SolidJS tutorial for context: https://youtu.be/WSvmEG7HPyE
Specifically id like to use the <For> loop component built into SolidJS which I believe is just a shorthand syntax of map.

<For each={props.someObject}>
{value =>
    <div>{value.name}</div>       {/* Error: Object is of type 'unknown'. */}
}
</For>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

未央 2025-02-20 01:08:40

这样的简单函数对于获取具有正确类型的道具条目很有用:

const propsEntries = <T extends Record<string, unknown>>(props: T) =>
  Object.entries(props) as [keyof T, T[keyof T]][];

然后,它可以使用&lt; for&gt;组件来映射道具:

<For each={propsEntries(props)}>
   {([name, value]) => <li>{name}: {value}</li>}
</For>

in游乐场

A simple function like this would be useful for getting the props entries with correct types:

const propsEntries = <T extends Record<string, unknown>>(props: T) =>
  Object.entries(props) as [keyof T, T[keyof T]][];

Then it could be used to map over props using the <For> component:

<For each={propsEntries(props)}>
   {([name, value]) => <li>{name}: {value}</li>}
</For>

demo in playground

っ〆星空下的拥抱 2025-02-20 01:08:40

在React + TypeScript中,您需要以以下方式进行。

type MyComponentProps = {
 someObject: object
}

export default function MyComponent(props: MyComponentProps) {
       
    return (
        <>
            {Object.values(props.someObject).map(value => {
                <div>{value}</div> 
            })}
        </>

    )
}

In React + typescript you would need to do it in the following way.

type MyComponentProps = {
 someObject: object
}

export default function MyComponent(props: MyComponentProps) {
       
    return (
        <>
            {Object.values(props.someObject).map(value => {
                <div>{value}</div> 
            })}
        </>

    )
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文