Мой React-Native Flatlist отказался от данных рендеринга, когда мои данные json равны единице.Мой плоский список отображается правильно, когда данных на моем Json больше одного.
Я перепробовал все приемы, о которых только могу подумать, но пока он не работает.Это происходит со всеми плоскими списками во всей моей программе, и это уже плохо.
Я пытался получить сторону массива с помощью Object.keys(jsonResponse.Product).length;
, прежде чем выбрать либо рендеринг в плоский список, либо возврат одного представления данных, в котором отказывалосьтакже работает для меня, так как Object.key возвращает тот же размер, когда элемент данных один и тот же, когда его два.(очень странно)
Я также пытался изменить стиль Flatlist, используя
height:((Dimensions.get('screen').height))
и width:((Dimensions.get('screen').width))
в реквизитах Flatlist contentContainerStyle , но он не отображается приданные одиночные
Также попытался использовать Array.from()
, чтобы убедиться, что данные, отображаемые в плоском списке, хорошо конвертируются в объект / массив
Я также пытался использовать this.state.PC_list_data.map()
, который все еще делаетне отображается, когда элемент данных всего один (один), как плоский список
ВЫХОД JSON, КОГДА ДАННЫХ БОЛЬШЕ, ЧЕМ ОДИН *
ОДИН ВЫХОД JSON
render(){
return(<FlatList
contentContainerStyle={{
borderWidth: 0,
width:((Dimensions.get('screen').width)),
//height:((Dimensions.get('screen').height))+50,
borderColor:'#00d',
// marginTop:30
}}
data={ Array.from(this.state.PC_list_data) || []}
keyExtractor={(item) =>item.Product_id}
renderItem={({item,index})=>
{
return (<CategoryProduct_List
{...item}
List_index={index}
HrefNav={this.navigateToSubProduct.bind(this, {...item})}
/>
)}
}
/>)
}
/// КОД НА CategoryProduct_List Компонент
const CategoryProduct_List = props =>
{
//alert('aaa')
return (<View style={[{
flex: 1,
display:'flex',
flexDirection: "row",
backgroundColor: 'rgb(243,243,243)',
marginHorizontal:10,
justifyContent:'space-between',
alignItem:'center',
borderLeftWidth:10,
borderLeftColor:'#80146D',
marginBottom:10,
marginLeft:5+'%',
marginTop:5,
padding:10,
width: 90+'%',
height:100+'%'
}]}>
<View style={{
alignItem:"left",
}}>
<TouchableOpacity
activeOpacity={0.7} onPress={()=> props.HrefNav()}>
<Text>{props.Product_name.toUpperCase()}</Text>
</TouchableOpacity>
</View>
<View style={{ alignItems: "flex-end",}}>
<TouchableOpacity
activeOpacity={0.7}>
<IconSet color='#80146D' onPress={()=> props.HrefNav()} size={25} name="arrow-forward"/>
</TouchableOpacity>
</View>
</View>);
}
export default CategoryProduct_List;
Что я хочу знать, так это как я могу заставить Flatlist отображать мои отдельные записи и что я не делаю прямо здесь