Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.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/1/wordpress/13.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
Reactjs 州政府并没有按照预期的反应行事_Reactjs_React Native - Fatal编程技术网

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