【问题标题】:React-Native Add Fade in AnimationReact-Native 在动画中添加淡入淡出
【发布时间】:2020-12-30 20:28:54
【问题描述】:

我试图让这张卡在每次加载组件时淡入,并在使用钩子卸载后淡出,但我没有这样做,迫切需要有人帮助。请你告诉我如何使用hooks每次加载和卸载这张卡的动画

这是我的组件:

import React, { useState } from "react";

const Home = (props) => {
  const renderCard = ({ item }) => {
    return (
      //I am trying to add a fadein to this everytime it loads and fadout when It unmounts
      <View>
        <Text style={styles.day}>{item}</Text>
        <MealCards
          item={state[item]}
          navigation={navigation}
          onChange={onChange}
        />
        <View style={styles.divider} />
      </View>
    );
  };
  return (
    <FlatList
      data={days}
      keyExtractor={(item) => item}
      showsHorizontalScrollIndicator={false}
      renderItem={renderCard}
    />
  );
};

【问题讨论】:

    标签: react-native animation react-hooks opacity react-animated


    【解决方案1】:

    将您的组件包裹在 Animated.View 中,并使用不透明度为它提供淡入动画:https://reactnative.dev/docs/animated

    类似

      const [fadeAnim] = useState(new Animated.Value(0));
    
      React.useEffect(() => {
        Animated.timing(fadeAnim, {
          toValue: 1,
          duration: 1000,
        }).start();
      }, []);
    
      return (
        <Animated.View
          style={{
            opacity: fadeAnim,
          }}
        >
          {props.children}
        </Animated.View>
      );
    

    以上代码用于淡入。淡出将在useEffect的返回函数中完成。

    【讨论】:

    • 我如何将它应用到我的平面列表,因为我仍然迷路请你帮帮我
    • 我会创建一个名为 FadeInView 或类似名称的组件。然后把这段代码放在里面。然后您可以使用FadeInView 作为父组件,例如&lt;FadeInView&gt;&lt;FlatListGoesHere /&gt;&lt;/FadeInView&gt;
    • 请你告诉我如何使用淡入淡出来做到这一点
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-20
    • 2012-12-18
    • 2014-02-21
    • 2019-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多