Tengo un acordeón dentro de una lista plana.
Aquí está el código que tengo:
const OptionList = (groupOption) => { return ( <FlatList data={groupOption.options} keyExtractor={(result) => result.id.toString()} renderItem={({ item, index }) => { const clickedRadio = () => { const selectedOption = { [item.question]: { ...item } }; setAnswers({ ...answers, ...selectedOption }); }; const status = isOptionSelected(item) ? true : false; return ( <View key={index}> <Radio initialValue={status} label={item.description} onChange={() => clickedRadio()} color="error" /> </View> ); }} /> ); }; return ( <View style={styles.container}> <Text style={{ fontWeight: "bold", fontSize: 16, color:"#6B24AA" }}> {t("Choose an option/Scroll for more questions")} </Text> <FlatList data={questions} listKey={(item) => item.id.toString()} keyExtractor={(result) => result.id.toString()} renderItem={({ item, index }) => { const data = [ { title: item.description, content: (<><OptionList options= {item?.question_options}></OptionList></>) } ]; const status = isOptionSelected(item) ? true : false; return ( <View style={styles.groupOptions} key={index}> <Accordion style={styles.accordion} headerStyle= {styles.headerStyle} contentStyle={styles.contentStyle} dataArray={data} icon={status ? <Icon name="circle" family="Entypo" size={20} style={{marginLeft: -6, color: "#6B24AA"}}/> : <Icon name="done" family="MaterialIcons" size={20} style={{marginLeft: -6}}/>} expandedIcon={<Icon name="circle" family="Entypo"/>} opened={1}/> </View> ); }} /> </View>);
El acordeón contiene su componente de lista plana antera. Muestra este error cada vez que hago clic en el acordeón.
Me muestra este error:
VirtualizedList: Encountered an error while measuring a list's offset from its containing VirtualizedList. at node_modules/react-native/Libraries/Lists/VirtualizedList.js:1411:10 in _scrollRef.measureLayout$argument_2¿Cómo puedo solucionar este error? ¿Es el problema la otra lista plana en el contenido de acordeón?
Reemplace el componente OptionList con el siguiente código.
Lista de opciones
const OptionList = (groupOption) => { return ( groupOption.map((item,index) => { const clickedRadio = () => { const selectedOption = { [item.question]: { ...item } }; setAnswers({ ...answers, ...selectedOption }); }; const status = isOptionSelected(item) ? true : false; return ( <View key={index}> <Radio initialValue={status} label={item.description} onChange={clickedRadio} color="error" /> </View> ) }) ); };por favor revise y hágamelo saber, saludos!