【发布时间】:2021-09-25 22:39:20
【问题描述】:
当我将自定义组件与 Styled-component 一起使用时,我正在尝试传递一些道具。
这是我要关注的容器,我想通过props改变flex-direction:
const InputInnerContainer = styled.View`
width: 100%;
height: 42px;
padding-horizontal: 5px;
flex-direction: ${props => props.right ? "row-reverse": "row"};
align-items: center;
justify-content: space-between;
border-radius: 4px;
border-width: 1px;
background-color: ${inputBackgroundColor};
border: 2px solid ${inputBorderColor};
`;
这是我的自定义组件“输入”:
const Input = ({ onChangeText, icon, value, label,iconPosition}) => {
return (
<InputContainer>
{label && <LabelText>{label}</LabelText>}
<InputInnerContainer {...iconPosition}>
<View>{icon && <LabelText>{icon}</LabelText>}</View>
<InputField onChangeText={onChangeText} value={value} />
</InputInnerContainer>
</InputContainer>
);
};
这就是我调用自定义组件的地方:
<Input
label="Password"
onChangeText={(text) => onChangeText(text)}
value={value}
icon="HIDE"
iconPosition="right"
/>
我要传递的道具是“iconPosition”。但我不确定如何将它传递给 Styled-component。我对 Styled-component 还是比较陌生,所以欢迎提出任何想法。
【问题讨论】:
-
iconPosition是一个字符串,所以就像<InputInnerContainer iconPosition={iconPosition}>一样转发它
标签: javascript reactjs react-native react-redux styled-components