React native React Native Flatlist单项选择器无法在呈现不同组件时更新组件网

React native React Native Flatlist单项选择器无法在呈现不同组件时更新组件网,react-native,react-native-flatlist,use-state,React Native,React Native Flatlist,Use State,您好,我发布了一个与此类似的代码,但有不同的错误,但我已将其修复。我想制作一个Flatlist单项选择器。itemUnselected样式运行良好,但当我按下图像时,我无法将其更新为itemSelected,并且我收到一条警告,提示“无法更新组件”。您能帮我更新onPress吗。边框未选中时为黑色,按时不更新。我是React Native的新手,所以我正在等待您的帮助:) import React,{useState}来自“React”; 进口{ 样式表, 文本, 看法 章节列表, 安全区域视图

您好,我发布了一个与此类似的代码,但有不同的错误,但我已将其修复。我想制作一个Flatlist单项选择器。itemUnselected样式运行良好,但当我按下图像时,我无法将其更新为itemSelected,并且我收到一条警告,提示“无法更新组件”。您能帮我更新onPress吗。边框未选中时为黑色,按时不更新。我是React Native的新手,所以我正在等待您的帮助:)

import React,{useState}来自“React”;
进口{
样式表,
文本,
看法
章节列表,
安全区域视图,
形象,,
平面列表,
状态栏,
可触摸不透明度
}从“反应本机”;
导出默认值()=>{
const[selectedID,setSelectedID]=useState(“1”);
常量ListItem=({item})=>{
返回(
setSelectedID(item.id)}>
{item.text}
);
};
返回(
(
{section.title}
{section.horizontal(
}
showshorizontalscrolindicator={false}
/>
):null}
)}
renderItem={({item,section})=>{
如果(横截面){
返回null;
}
返回;
}}
/>
);
};
常量联盟=[
{
标题:“”,
对,,
数据:[
{
id:'1',
文字:“青铜1”,
uri:'https://lolyama.com/wp-content/uploads/2018/11/Season_2019_-_Bronze_1.png',
},
{
id:'2',
文字:“青铜2”,
uri:'https://lolyama.com/wp-content/uploads/2018/11/Season_2019_-_Bronze_1.png',
},
{
id:'3',
文字:“青铜3”,
uri:'https://lolyama.com/wp-content/uploads/2018/11/Season_2019_-_Bronze_1.png',
},
{
id:'4',
文字:“青铜4”,
uri:'https://lolyama.com/wp-content/uploads/2018/11/Season_2019_-_Bronze_1.png',
},
{
id:'5',
文字:“银色1”,
uri:'https://img.rankedboost.com/wp-content/uploads/2014/09/Season_2019_-_Silver_1.png',
},
],
}]
const styles=StyleSheet.create({
容器:{
弹性:1,
背景颜色:“白色”,
},
章节标题:{
重量:'800',
尺码:18,
颜色:“#F4”,
玛金托普:250,
},
项目:{
差额:10,
},
项目照片:{
宽度:80,
身高:80,
边界半径:50
},
项目文本:{
颜色:'黑色',
玛金托普:5,
边缘左侧:15
},
所选项目:{
},
未选择的项目:{
边框颜色:“黑色”,
边框宽度:2
}
});
import React , {useState} from 'react';
import {
  StyleSheet,
  Text,
  View,
  SectionList,
  SafeAreaView,
  Image,
  FlatList,
  StatusBar,
  TouchableOpacity
} from 'react-native';



export default () => {
  const [selectedID,setSelectedID] = useState("1");

  

  const ListItem = ({ item }) => {

    return (
      <TouchableOpacity onPress = {() => setSelectedID(item.id)}>
      <View style={[styles.item , setSelectedID(item.id) ?
      styles.itemSelected : 
      styles.itemUnselected]}>
        
        <Image
          source={{
            uri: item.uri,
          }}
          style={styles.itemPhoto}
          resizeMode="cover"
        />
        
        <Text style={styles.itemText}>{item.text}</Text>
      </View>
      </TouchableOpacity>
    );
  };

  return (
    <View style={styles.container}>
      <StatusBar style="light" />
      <SafeAreaView style={{ flex: 1 }}>
        <SectionList
          contentContainerStyle={{ paddingHorizontal: 10 }}
          stickySectionHeadersEnabled={false}
          sections={LEAGUES}
          renderSectionHeader={({ section }) => (
            <>
              <Text style={styles.sectionHeader}>{section.title}</Text>
              {section.horizontal ? (
                <FlatList
                  horizontal
                  data={section.data}
                  renderItem={({ item }) => <ListItem item={item} />}
                  showsHorizontalScrollIndicator={false}
                />
              ) : null}
            </>
          )}
          renderItem={({ item, section }) => {
            if (section.horizontal) {
              return null;
            }
            return <ListItem item={item} />;
          }}
        />
      </SafeAreaView>
    </View>
  );
};

const LEAGUES = [
  {
    title: '',
    horizontal: true,
    data: [
      {
        id: '1',
        text: 'Bronze 1',
        uri: 'https://lolyama.com/wp-content/uploads/2018/11/Season_2019_-_Bronze_1.png',
      },
      {
        id: '2',
        text: 'Bronze 2',
        uri: 'https://lolyama.com/wp-content/uploads/2018/11/Season_2019_-_Bronze_1.png',
      },

      {
        id: '3',
        text: 'Bronze 3',
        uri: 'https://lolyama.com/wp-content/uploads/2018/11/Season_2019_-_Bronze_1.png',
      },
      {
        id: '4',
        text: 'Bronze 4',
        uri: 'https://lolyama.com/wp-content/uploads/2018/11/Season_2019_-_Bronze_1.png',
      },
      {
        id: '5',
        text: 'Silver 1',
        uri: 'https://img.rankedboost.com/wp-content/uploads/2014/09/Season_2019_-_Silver_1.png',
      },
    ],
  }]
  

const styles = StyleSheet.create({
  container: {
    flex: 1,
    backgroundColor: 'white',
    
  },
  sectionHeader: {
    fontWeight: '800',
    fontSize: 18,
    color: '#f4f4f4',
    marginTop: 250,
    
    
  },
  item: {
    margin: 10,
  },
  itemPhoto: {
    width: 80,
    height: 80,
    borderRadius:50
  },
  itemText: {
    color: 'black',
    marginTop: 5,
    marginLeft:15
  },
  itemSelected:{
     
  },
  itemUnselected:{
    borderColor:"black",
     borderWidth:2
    
  }
});