Reactjs 州政府并没有按照预期的反应行事
我像这样映射数组:Reactjs 州政府并没有按照预期的反应行事,reactjs,react-native,Reactjs,React Native,我像这样映射数组: {activeNewsCategories.map((i) => ( <Tags key={i} tagName={i} getNewsByCategory={getNewsByCategory} /> ))} {activeNewsCategories
{activeNewsCategories.map((i) => (
<Tags
key={i}
tagName={i}
getNewsByCategory={getNewsByCategory}
/>
))}
{activeNewsCategories.map((i)=>(
))}
这是标记组件的内部:
const Tags = ({tagName, getNewsByCategory}) => {
const [selectedCategory, chooseCategory] = useState(false);
return (
<TouchableOpacity
style={
selectedCategory
? styles.chosenActiveCategoriesButton
: styles.activeCategoriesButton
}
onPress={() => {
getNewsByCategory(tagName);
chooseCategory(!selectedCategory);
}}>
<Text style={styles.activeCategoriesButtonText}>{tagName}</Text>
</TouchableOpacity>
);
};
export default Tags;
const标记=({标记名,getNewsByCategory})=>{
const[selectedCategory,chooseCategory]=useState(false);
返回(
{
getNewsByCategory(标记名);
选择类别(!selectedCategory);
}}>
{标记名}
);
};
导出默认标签;
它从数组中总共呈现5个标记。
当我点击其中一个标签时,它的状态正在按预期的方式变为true,但问题是,当我点击另一个标签时,上一个标签的状态没有变为false,请对我如何实现它有什么建议?我将采用的解决方案是保存,其中“标签”是通过它们的键选择的,您也可以在其中映射它们,然后添加类似“isSelected”的内容作为道具,它对您所选的道具是正确的 比如:
const [selectedCategory, setSelectedCategory] = useState();
const getNewsByCategory = (tagName) => {
setSelectedCategory(tagName);
//whatever you were doing here before
}
{activeNewsCategories.map((i) => (
<Tags
key={i}
tagName={i}
isSelected={selectedCategory === i}
getNewsByCategory={getNewsByCategory}
/>
))}
在标签中添加到
const [selectedCategory, chooseCategory] = tagName
const [selectedCategory, chooseCategory] = tagName