reactjs - 如何从子组件更改步骤?
问题描述
我想在步进器中显示不同的组件,而不使用经典的上一个/下一个按钮。
我开始以经典材质 UI 步进器为例,但现在我想知道如何在我的 PlanSelection 组件中添加一个按钮以引导下一步?
function getSteps() {
return ['Plan', 'Date', 'Informations', 'Payment'];
}
function getStepContent(step) {
switch (step) {
case 0:
return <PlanSelection />;
case 1:
return <DateSelection />;
case 2:
return <InformationsCustomer />;
case 3:
return <SummaryPayment />;
default:
return 'Unknown step';
}
}
export default function CustomizedSteppers() {
const classes = useStyles();
const [activeStep, setActiveStep] = React.useState(0);
const steps = getSteps();
const handleNext = () => {
setActiveStep(prevActiveStep => prevActiveStep + 1);
};
const handleBack = () => {
setActiveStep(prevActiveStep => prevActiveStep - 1);
};
return (
<Grid className={classes.root}>
<Stepper alternativeLabel activeStep={activeStep} connector={<ColorlibConnector />}>
{steps.map(label => (
<Step key={label}>
<StepLabel StepIconComponent={ColorlibStepIcon}>
{label}
</StepLabel>
</Step>
))}
</Stepper>
<Grid>{getStepContent(activeStep)}</Grid>
</Grid>
);
}
解决方案
我只需要将道具传递给我的欲望组件
return <PlanSelection handleBack={handleBack} handleNext={handleNext} />;
然后在PlanSelection.js
,
const PlanSelection = (props) => {
const { handleBack, handleNext,t } = props;
推荐阅读
- powershell - Powershell 输出的自定义字体颜色
- css - 如何在侧面导出默认设置单词?
- c++ - 998'244'353 中单引号的含义
- r - Rmarkdown 不会编织到 HTML xcrun:mac 上的错误
- python - 根据另一个一维数组的值访问二维数组索引?
- sql - 优化 SQL 交叉连接,检查其他列中是否有任何数组值
- reactjs - 如何在 React js 中通过 id 过滤组件
- sql - 拒绝向所有用户和角色更新列
- java - 如何按 id 降序对具有 id 属性的类的列表进行排序?
- ios - 一些带有 CAGradientLayer 的视图不渲染渐变