【发布时间】:2020-01-13 14:23:14
【问题描述】:
我正在使用功能组件和钩子。第一次渲染组件后,在 useEffect 函数中,我有一个循环来从产品列表中获取唯一类别。
一旦这些类别被提取出来,我将它们存储在一个数组中,以组件状态为setCategoriesState。但是,就目前而言,除非重新渲染组件,否则状态不会反映更新的类别列表。有没有更好的方法来做到这一点?
const [categoriesState, setCategoriesState] = useState([])
var categories = []
useEffect(() => {
for (let i = 0; i < props.products.items.length; i++) {
if (categories.indexOf(props.products.items[i].category) === -1) {
categories = [...categories, props.products.items[i].category]
}
}
setCategoriesState(categories)
}, [])
这就是我使用 categoriesState 的方式
{categoriesState.map((cat) => <Text >{cat}</Text>)}
【问题讨论】:
-
您在
react-native或reactjs中使用它,因为您将两者都添加为标签。 -
我正在使用 React Native
-
但是您正在使用
setCategoriesState更新您的状态,这意味着您的组件将重新渲染!! -
你是如何使用
categoriesState的? -
@WillJenkins
{categoriesState.map((cat) => <Text >{cat}</Text>)}
标签: javascript react-native react-hooks