基于状态而不是道具的样式
Styling based on state instead of props
我想根据组件的状态(而不是道具)来设置组件的样式,它会随着点击而改变。
但是,如果不将状态向上拉到包装器并将状态向下传递给道具,我看不出有什么方法可以做到这一点。这似乎是不必要的。有没有办法使用样式组件访问状态?
我想做这样的事情:
const styledDiv = styled.div`
background-color: ${(state) => state.x};
`
库的开发者推荐的解决方案是把state拉上来。我必须同意。
最好的办法是将您的状态作为道具传递到样式化组件中。像这样...
JS
return (
<div>
<StyledDiv customPropName={this.state.x}>example text</StyledDiv>
</div>
);
样式组件
const StyledDiv = styled.div`
background-color: ${(props) => props.x};
`
我想根据组件的状态(而不是道具)来设置组件的样式,它会随着点击而改变。
但是,如果不将状态向上拉到包装器并将状态向下传递给道具,我看不出有什么方法可以做到这一点。这似乎是不必要的。有没有办法使用样式组件访问状态?
我想做这样的事情:
const styledDiv = styled.div`
background-color: ${(state) => state.x};
`
库的开发者推荐的解决方案是把state拉上来。我必须同意。
最好的办法是将您的状态作为道具传递到样式化组件中。像这样...
JS
return (
<div>
<StyledDiv customPropName={this.state.x}>example text</StyledDiv>
</div>
);
样式组件
const StyledDiv = styled.div`
background-color: ${(props) => props.x};
`