实际上,我想为我的ScrollViewRTL
项目制作一个通用react-native
组件。我要处理的主要目标是ScrollView组件的 RTL 情况。但是具有任何属性的ScrollView组件都不会显示RTL情况,请注意以下代码:
import React, { memo } from 'react';
import PropTypes from 'prop-types';
import { StyleSheet, ScrollView } from 'react-native';
import { variables } from 'utils/constants/theme';
import { styleJoiner } from 'utils/helpers';
const ScrollViewRTL = ({ children, style, contentContainerStyle, ...rest }) => (
<ScrollView
{...rest}
style={styleJoiner(styles.wrapper, style)}
horizontal
showsHorizontalScrollIndicator={false}
contentContainerStyle={styleJoiner(
styles.contentContainer,
contentContainerStyle
)}
>
{children}
</ScrollView>
);
ScrollViewRTL.propTypes = {
children: PropTypes.oneOfType([
PropTypes.element,
PropTypes.arrayOf(PropTypes.element),
PropTypes.func
]).isRequired,
style: PropTypes.oneOfType([PropTypes.object, PropTypes.array]),
contentContainerStyle: PropTypes.oneOfType([
PropTypes.object,
PropTypes.array
])
};
ScrollViewRTL.defaultProps = {
style: undefined,
contentContainerStyle: undefined
};
const styles = StyleSheet.create({
contentContainer: {
flexDirection: 'row-reverse',
minWidth: '100%',
paddingHorizontal: variables.gutter
},
wrapper: {
flexGrow: 0
}
});
export default memo(ScrollViewRTL);
但这是LTR情况的开始,对于下面的示例,我设置了30个从零开始到29的文本,您可以看到它位于RTL的末尾,这意味着它位于LTR的开始。 LTR情况:
所以我决定将其滚动到LTR情况的结尾,似乎是在RTL情况的开始,但是我不想仅使用ref
就使用Component或PureComponent,我想使用{{ 1}}在上述无状态组件中,我该怎么做?