【问题标题】:React Native keep scrollview position with useSelectorReact Native 使用 useSelector 保持滚动视图位置
【发布时间】:2021-08-19 21:28:34
【问题描述】:

我有这样的情况,我使用滚动视图,当它第一次打开到屏幕时我使用 scrollTo,但是当我这样做时,我的 useSelector 重新渲染滚动视图并转到开头并再次滚动我如何使用 useSelector 保持滚动视图位置

const [data1, setData1] = useState(useSelector(reduxData => reduxData.data1));
const [data2, setData2] = useState(useSelector(reduxData => reduxData.data2));

当我像这样改变这个状态时

const [data1, setData1] = useState([]);
const [data2, setData2] = useState([]);

scrollTo完美运行,我该如何解决这个问题

【问题讨论】:

    标签: react-native redux scrollview


    【解决方案1】:

    您正在使用 useState 中的 useSelector 复制状态。如果你像这样从 redux 定义一个变量怎么办:

    let data1 = useSelector(reduxData => reduxData.data1);
    

    然后使用 useEffect 像这样滚动:

    useEffect(() => {
      scrollTo(data1)
    },[data1]);
    // OR IF data1 DOES NOT CONTAIN THE PLACE TO SCROLL SUBSTITUTE 
    // THE VARIABLE AS useEffect WILL ONLY RUN WHEN SUCH VARIABLE 
    // CHANGES
    

    有效吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-09-24
      • 2020-04-21
      • 2018-04-08
      • 2021-01-24
      • 2017-01-25
      • 1970-01-01
      • 2021-07-27
      相关资源
      最近更新 更多