React 组件中的 Switch 语句
Switch statement in a React component
尝试构建一个组件,其中 returns 几个基于 prop 的不同样式的组件。这是我得到的:
const Type = ({ props }) => {
const { right, center } = props;
switch (props) {
case props.paragraph:
return <StyledParagraph right={right} center={center} {...props} />;
case props.h1:
return <StyledHeadingOne right={right} center={center} {...props} />;
case props.h2:
return <StyledHeadingTwo right={right} center={center} {...props} />;
case props.h3:
return <StyledHeadingThree right={right} center={center} {...props} />;
case props.h4:
return <StyledHeadingFour right={right} center={center} {...props} />;
case props.h5:
return <StyledHeadingFive right={right} center={center} {...props} />;
case props.h6:
return <StyledHeadingSix right={right} center={center} {...props} />;
default:
return <SetTypeError right={right} center={center} {...props} />;
}
};
返回的是props未定义。我这样调用组件:
通过编写 ({ props })
,您从作为组件第一个参数的 props 对象解构 props
属性,等同于以下内容:
const Type = (param) => {
const props = param.props;
const { right, center } = props;
// ...
};
只需写 (props)
来将 props 对象命名为 props
,它将按预期工作。
const Type = (props) => {
const { right, center } = props;
// ...
};
尝试构建一个组件,其中 returns 几个基于 prop 的不同样式的组件。这是我得到的:
const Type = ({ props }) => {
const { right, center } = props;
switch (props) {
case props.paragraph:
return <StyledParagraph right={right} center={center} {...props} />;
case props.h1:
return <StyledHeadingOne right={right} center={center} {...props} />;
case props.h2:
return <StyledHeadingTwo right={right} center={center} {...props} />;
case props.h3:
return <StyledHeadingThree right={right} center={center} {...props} />;
case props.h4:
return <StyledHeadingFour right={right} center={center} {...props} />;
case props.h5:
return <StyledHeadingFive right={right} center={center} {...props} />;
case props.h6:
return <StyledHeadingSix right={right} center={center} {...props} />;
default:
return <SetTypeError right={right} center={center} {...props} />;
}
};
返回的是props未定义。我这样调用组件:
通过编写 ({ props })
,您从作为组件第一个参数的 props 对象解构 props
属性,等同于以下内容:
const Type = (param) => {
const props = param.props;
const { right, center } = props;
// ...
};
只需写 (props)
来将 props 对象命名为 props
,它将按预期工作。
const Type = (props) => {
const { right, center } = props;
// ...
};