当前位置: 首页 > 知识库问答 >
问题:

将道具传递给家长[重复]

司空高义
2023-03-14

我试图使用在child中的函数中生成的值。js并将其传递给父级。所以我可以使用这个值来过滤子数组。

小孩js

const returnDistance = () => {
            const dist = getDistance(userLat, userLng, lat, lng).toFixed(1);
            this.props.onCalculateDistance(dist);
            return dist;
        }

return dist是生成的值,我需要在父级中访问该值。js

Parent.js

// The callback function
    distanceChange = (dist) => {
            console.log(dist)
            return dist;
    }

//The map to render child.js data. Im passing distanceChange as a prop.
{filteredResults.filter(({ node }) => (node.onCalculateDistance >= 0)).map(({ node }) => {
    return (
        <SpaceWrapper key={node.id}>
            <Space node={node} onCalculateDistance={this.distanceChange} />
        </SpaceWrapper>
    )
}
)}

我是不是错过了一些显而易见的东西?控制台。日志fordistanceChange返回子项的所有值。js节点,但当用作道具时返回未定义。

如何让函数运行,这样我就可以用返回的值过滤结果?

谢谢

共有1个答案

谈灵均
2023-03-14

我认为你所做的只是返回一个值,而不是用它做任何事情。要让父级存储dist的值,它需要具有该属性。

您需要做的是将属性dist添加到父级,然后在父级中定义getDistance。然后,您可以将getDistance传递给子级,子级可以调用该函数来更新父级this。状态dist属性。

例如,你可以

父母亲js

return (
    <SpaceWrapper key={node.id}>
        <Space node={node} getDistance={this.getDistance} />
    </SpaceWrapper>
)

然后在child中可以调用this。道具。getDistance()更新

希望这对你有帮助。

 类似资料:
  • 我想在React中将数据从子组件发送到父组件。查找数据时,只有类类型,没有功能文档。您可以使用什么语法传递数据?

  • 我试图传递一个道具给一个子组件在反应,但它不显示在所有的道具,当我控制台日志。甚至关键的也不显示。对此的任何帮助都将不胜感激。

  • 问题内容: 我试图找到定义可以以一般方式使用的组件的正确方法: 当然,可以想象并在父组件和子组件之间进行渲染的逻辑。 对于这个问题,这是一个虚拟的实现: 问题是,每当您用于定义包装器组件时,如何将某些属性传递给其所有子组件? 问题答案: 用新道具克隆Children 您可以使用React.Children遍历子级,然后使用React.cloneElement使用新的道具(浅合并)克隆每个元素,例如

  • 我是一个相当新的反应,这是一个我正在努力解决的问题。

  • 问题内容: 我正在尝试找到定义可以以一般方式使用的某些组件的正确方法: 当然,您可以想象并作为该逻辑的示例,在父组件和子组件之间存在一种渲染逻辑。 对于这个问题,这是一个虚拟的实现: 问题是,每当您用于定义包装器组件时,如何将某些属性传递给其所有子组件? 问题答案: Cloning children with new props 您可以使用React.Children遍历子级,然后使用React.

  • 问题内容: 我有一个对象,其中包含多个通用键值道具,我想将它们传递给一些jsx。像这样: 我希望这可以作为传递单个道具的功能: 这可能吗? 问题答案: 这可能吗? 是的,为什么您认为不可能,但是发送方式不正确。 的含义是: 因此,如果您默认不指定任何值,它将采用。要传递对象,您需要这样编写: 更新: 如果您有一个对象,并且希望将所有属性作为单独的属性传递,则将其编写为: