可以在没有箭头功能的情况下反应本机备忘录或 usememo 吗?
react native memo or usememo without arrow function possible?
我想使用没有箭头功能的备忘录或useMemo。那可能吗 ?因为箭头函数创建的是新实例,我希望它避免。
import React, { memo, useMemo } from 'react';
import { StyleSheet, Text, View, FlatList, TextInput, TouchableOpacity, Image, Dimensions } from 'react-native';
const Shopping_cart = ({ datas, onPressSetting }) => {
const RenderItem = useMemo(({item}) => {
return (
<Text>{item.title}</Text>
)
}, [datas]);
return (
<FlatList
data={datas}
keyExtractor={item => item.item.product_id}
renderItem={({ item }) => <RenderItem item={item} />}
/>
)
};
这个没有箭头?有人有想法吗?
谢谢!
你应该为此使用 useCallback
钩子。
您可以在 React 官方文档中阅读更多相关信息:useCallback
import React, { memo, useCallback } from 'react';
import { StyleSheet, Text, View, FlatList, TextInput, TouchableOpacity, Image, Dimensions } from 'react-native';
const Shopping_cart = ({ datas, onPressSetting }) => {
const RenderItem = useCallback(({item}) => {
return (
<Text>{item.title}</Text>
)
}, [datas]);
return (
<FlatList
data={datas}
keyExtractor={item => item.item.product_id}
renderItem={RenderItem}
/>
)
};
我想使用没有箭头功能的备忘录或useMemo。那可能吗 ?因为箭头函数创建的是新实例,我希望它避免。
import React, { memo, useMemo } from 'react';
import { StyleSheet, Text, View, FlatList, TextInput, TouchableOpacity, Image, Dimensions } from 'react-native';
const Shopping_cart = ({ datas, onPressSetting }) => {
const RenderItem = useMemo(({item}) => {
return (
<Text>{item.title}</Text>
)
}, [datas]);
return (
<FlatList
data={datas}
keyExtractor={item => item.item.product_id}
renderItem={({ item }) => <RenderItem item={item} />}
/>
)
};
这个没有箭头?有人有想法吗?
谢谢!
你应该为此使用 useCallback
钩子。
您可以在 React 官方文档中阅读更多相关信息:useCallback
import React, { memo, useCallback } from 'react';
import { StyleSheet, Text, View, FlatList, TextInput, TouchableOpacity, Image, Dimensions } from 'react-native';
const Shopping_cart = ({ datas, onPressSetting }) => {
const RenderItem = useCallback(({item}) => {
return (
<Text>{item.title}</Text>
)
}, [datas]);
return (
<FlatList
data={datas}
keyExtractor={item => item.item.product_id}
renderItem={RenderItem}
/>
)
};