有没有办法将pressed
属性传递给styled-components?
我现在拥有的:
import React from 'react';
import { Pressable, Text, View } from 'react-native';
import styled from 'styled-components/native';
const StyledPressable = styled(Pressable)``;
const App = () => {
return (
<View>
<StyledPressable
onPress={() => null}
android_ripple={{ color: 'black', borderless: true }}>
<Text>Log in</Text>
</StyledPressable>
</View>
);
};
export default App;
我想达到的目标
import React from 'react';
import { Pressable, Text, View } from 'react-native';
import styled from 'styled-components/native';
const StyledPressable = styled(Pressable)`
background-color: ${props => pressed ? 'black' : 'blue'} // change color on press, eg.
`;
const App = () => {
return (
<View>
<StyledPressable
onPress={() => null}
android_ripple={{ color: 'black', borderless: true }}>
pressed={pressed} // this property "pressed" does not exist.
<Text>Log in</Text>
</StyledPressable>
</View>
);
};
export default App;
This is the official docs。它使用内联样式,我不能使用样式化的组件。
2条答案
按热度按时间izj3ouym1#
我不认为目前有一种方法。一种解决方案是在
Pressable
和Text
之间使用View
,并在其中完成所有样式:atmip9wb2#
是的,有一种方法可以使用'pressed',使用一个返回数组的函数。