Reactjs 当子组件为变量时,反应传递道具

Reactjs 当子组件为变量时,反应传递道具,reactjs,react-props,Reactjs,React Props,当子组件是变量时,如何将道具传递给子组件。在下面的代码中,我需要将prev函数作为道具传递给步骤。谢谢 import React, {useState} from 'react'; const Wizard = (props)=>{ const [step] = useState(0); const CurrStep = props.steps[step]; const prev = ()=>{ console.log('prev call

当子组件是变量时,如何将道具传递给子组件。在下面的代码中,我需要将prev函数作为道具传递给步骤。谢谢

import React, {useState} from 'react';

const Wizard = (props)=>{
    const [step] = useState(0);
    const CurrStep = props.steps[step];

    const prev = ()=>{
        console.log('prev called')
    }

    return (
        <div>   
            {// need to pass prev as a prop to the CurrStep component}
            {CurrStep }
        </div>)
}

export default Wizard

Wizard.propTypes = {
  header: PropTypes.func.isRequired,
  steps: PropTypes.array.isRequired,//array of functional components 
  wizardContext: PropTypes.object.isRequired,
  onComplete: PropTypes.func.isRequired
};
import React,{useState}来自“React”;
常量向导=(道具)=>{
const[step]=useState(0);
const CurrStep=props.steps[step];
常量prev=()=>{
console.log('prev called')
}
返回(
{//需要将prev作为prop传递给CurrStep组件}
{CurrStep}
)
}
导出默认向导
Wizard.propTypes={
标题:PropTypes.func.isRequired,
步骤:PropTypes.array.isRequired,//函数组件数组
wizardContext:PropTypes.object.isRequired,
onComplete:PropTypes.func.isRequired
};
//添加(道具)=>
const CurrStep=(…道具)=>props.steps[step](…道具);
常量prev=()=>{
console.log('prev called')
}
返回(
{CurrStep(prev)}
)
//添加(道具)=>
const CurrStep=(…道具)=>props.steps[step](…道具);
常量prev=()=>{
console.log('prev called')
}
返回(
{CurrStep(prev)}
)

您可以像这样在
CurrStep
组件中传播
道具

return <CurrStep {...props} />;
返回;
下面是代码的演示


从“React”导入React,{useState};
常量向导=道具=>{
const[step]=useState(0);
const Comp1=props=>{props.a};
const Comp2=props=>{props.a};
常数comps=[Comp1,Comp2];
const CurrStep=comps[步骤];
//这只是为了演示,您可以直接从向导中传递道具
道具={a:“a”,…道具};
返回;
};
导出默认向导;

您可以像这样在
CurrStep
组件中传播
道具

return <CurrStep {...props} />;
返回;
下面是代码的演示


从“React”导入React,{useState};
常量向导=道具=>{
const[step]=useState(0);
const Comp1=props=>{props.a};
const Comp2=props=>{props.a};
常量comps=[Comp1,Comp2];
const CurrStep=comps[步骤];
//这只是为了演示,您可以直接从向导中传递道具
道具={a:“a”,…道具};
返回;
};
导出默认向导;

这是我的错误,我传入的数组如下:

[,]而不是

[第1步,第2步]


很抱歉浪费您的时间。

这是我的错误,我传递的数组如下:

[,]而不是

[第1步,第2步]


很抱歉浪费您的时间。

什么类型的
CurrStep
?它是函数/组件类还是渲染组件?您是否可以包含定义
道具步骤的代码?您好,这是一个功能组件数组。我添加了道具类型。
CurrStep
上的道具是什么?不知道你的意思。步骤是一个组件数组。我想渲染其中一个并传入道具,而不知道组件的确切名称。如果步骤组件只使用一个道具,即prev,则“良好”,否则可能会对您有所帮助。什么类型是
CurrStep
?它是函数/组件类还是渲染组件?您是否可以包含定义
道具步骤的代码?您好,这是一个功能组件数组。我添加了道具类型。
CurrStep
上的道具是什么?不知道你的意思。步骤是一个组件数组。我想渲染其中一个并传递道具,而不知道组件的确切名称。如果步骤组件只使用一个道具,即prev,则“好的”,否则可能会对您有所帮助。嗯,这似乎无法传递道具。我将道具记录在CurrStep中,它是一个空对象。未编译,我得到TypeError:无法读取未定义的属性“0”。可能指的是props.stepseems,因此,它是代码处唯一出现的
0
。。。这不是阵列的功能组件吗?嗯,这似乎没有通过道具。我将道具记录在CurrStep中,它是一个空对象。未编译,我得到TypeError:无法读取未定义的属性“0”。可能指的是props.stepseems,因此,它是代码处唯一出现的
0
。。。它不是阵列容纳功能组件吗?