【发布时间】:2019-08-01 23:48:46
【问题描述】:
如何正确地将参数从一个组件传递到另一个组件。在我的场景中,当我将我的传递参数控制台记录到另一个组件时,它们在最后一个实际字符串之前首先具有空字符串。这应该只是实际的字符串。
组件 1:
import React, {useState, useEffect} from 'react'
import {dataComponent} from './include/childComponent'
export default function Parentcomponent(props) {
const [data, setdata] = useState('');
function functioncalhttp(){
//data from database
setdata(response.data);
}
useEffect(() => {
functioncalhttp();
},[]);
return (
<div>{<dataComponent callbackfunction={data}/>}</div>
)
}
组件 2:
import React, {useState, useEffect} from 'react'
export default function dataComponent(props) {
console.log(props.callbackfunction);
return (
<div></div>
)
}
【问题讨论】:
-
Parentcomponent中“数据”的值是多少?我认为这可能是一个时间问题,其中数据在传递之前没有设置。见:stackoverflow.com/a/55429201/2958996 -
数据来自数据库。在我的示例 callbackfunction={data} 上,data 的值需要传递给 dataComponent。是的,它成功通过了,但是当我控制台记录数据时,他们在控制台日志中在实际字符串数据之前有 2 或 3 个空字符串。
-
渲染函数实际上可以在 react 绘制到屏幕之前被调用几次,也许子组件也被重新渲染了几次,所以它可以看到父组件的两种状态。
-
@DrewReese 是的。他们渲染了几次,这就是我的问题。我一次无法获取数据。
-
它是一个prop,每次该组件渲染时都会被传递。您是否希望孩子仅在数据实际准备好呈现时才挂载?
标签: reactjs