Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/430.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在React Native中从Flatlist数组设置单个项目的动画_Javascript_Reactjs_React Native_Animation - Fatal编程技术网

Javascript 如何在React Native中从Flatlist数组设置单个项目的动画

Javascript 如何在React Native中从Flatlist数组设置单个项目的动画,javascript,reactjs,react-native,animation,Javascript,Reactjs,React Native,Animation,我有一个数据数组,我在React Native的flatlist中呈现。当我按下单个项目时,我只想设置它的动画。。我有点困惑,无法确定如何制作动画。。谁能给我看看并解释一下吗?因为我找不到任何用平面列表渲染解释的解释 constructor(props){ super(props); this.state = { animation: new Animated.Value(1) } startAnimation (x){ Animated.timing(this.s

我有一个数据数组,我在React Native的flatlist中呈现。当我按下单个项目时,我只想设置它的动画。。我有点困惑,无法确定如何制作动画。。谁能给我看看并解释一下吗?因为我找不到任何用平面列表渲染解释的解释

   constructor(props){ 
super(props); 
this.state = { animation: new Animated.Value(1) }


startAnimation (x){
        Animated.timing(this.state.animation, {
            toValue: 1.5,
            duration: 1500
        }).start();
    }


 _renderItem = ({item, index}) => {

        return(
            <Animated.View key={index} style={{margin: 10, transform:[{scale: this.state.animation}]}}>
                <TouchableOpacity onLongPress={() => this.activateItem(item.id)} onPress={() => this.startAnimation(index)}>
                    <Image source={ images[item.item_id].uri } style={{width: 60, height: 60}}/>
                </TouchableOpacity>
            </Animated.View>
        );

    };



 render(){
        return(

            <View style={{flex: 1}}>

                <FlatList
                      numColumns={4}
                      data={this.state.items}
                      renderItem={this._renderItem}
                      keyExtractor={this._keyExtractor}
                      extraData={this.state.animation}
                />

            </View>

        );
    }
constructor(props){
超级(道具);
this.state={animation:new Animated.Value(1)}
startAnimation(x){
动画。计时(this.state.animation{
toValue:1.5,
持续时间:1500
}).start();
}
_renderItem=({item,index})=>{
返回(
this.activateItem(item.id)}onPress={()=>this.startAnimation(index)}>
);
};
render(){
返回(
);
}

您需要做的是在另一个组件中隔离项目和动画状态,然后每个项目都将有自己的动画,当单击此项目时,只有他将被设置动画!

您需要做的是在另一个组件中隔离项目和动画状态,然后每个项目都将有自己的动画,当单击此项目时,只有他将被设置动画!

也许您可以制作一个listItem组件,并在该组件中配置动画,而不是在父组件中配置动画如果您认为可以,请为我写一个小示例好吗?因此,我可以批准它作为答案,然后如果它能工作也许你可以制作一个listItem组件,在该组件内配置你的动画,而不是在父组件中配置你的动画如果你认为它能工作,你能为我写一个小例子吗?因此,我可以批准它作为答案,然后如果它将工作,你可以写它作为代码与小例子。。所以这将是更容易理解的它看起来像它的工作,等等,我会检查,并告诉你全部。是的,我检查过了,效果很好!谢谢你,伙计。。对于新手和喜欢的人来说,有时很难理解这些简单的东西。。感谢您的努力。也许可以将它添加到您的答案中,这样阅读它的人就可以轻松地从代码中理解它,而不是检查链接。你也可以在你的答案中附上链接。你能用小例子把它写成代码吗。。所以这将是更容易理解的它看起来像它的工作,等等,我会检查,并告诉你全部。是的,我检查过了,效果很好!谢谢你,伙计。。对于新手和喜欢的人来说,有时很难理解这些简单的东西。。感谢您的努力。也许可以将它添加到您的答案中,这样阅读它的人就可以轻松地从代码中理解它,而不是检查链接。你也可以在回答中附上链接。