我试图使用在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节点,但当用作道具时返回未定义。
如何让函数运行,这样我就可以用返回的值过滤结果?
谢谢
我认为你所做的只是返回一个值,而不是用它做任何事情。要让父级存储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。像这样: 我希望这可以作为传递单个道具的功能: 这可能吗? 问题答案: 这可能吗? 是的,为什么您认为不可能,但是发送方式不正确。 的含义是: 因此,如果您默认不指定任何值,它将采用。要传递对象,您需要这样编写: 更新: 如果您有一个对象,并且希望将所有属性作为单独的属性传递,则将其编写为: