Пытаетесь добавить «[RCTVirtualText 507]» к «[RCTView 509]»)? - PullRequest
1 голос
/ 06 мая 2020

Я разрабатывал свое приложение для Интернета, и оно работает нормально. Однако, когда я запустил то же приложение в Expo / Android, я получил эту ошибку. Из описания трудно понять, о чем идет речь.

Это полное сообщение об ошибке:

Cannot add a child that doesn't have a YogaNode to a parent without a measure function! (Trying to add a '[RCTVirtualText 507]' to a '[RCTView 509]') 

Вы знаете, что это могло быть?

Кажется, быть файлом js, который его запускает:

...
export class SubjectListAssignScreen extends React.Component {

    state = {

        subjectList: [],

        subListLoading: true,

    };

    constructor(props) {
        super(props);
    };

    scrollDimensions = [{
        width: Math.round(Dimensions.get('window').width - 20),
        maxHeight: Math.round(Dimensions.get('window').height - 200)
    }];
...
    _getSubjects = async(text) => {

        try {

            await this.setState({ subListLoading: true });

            let lQueryRes = await API.graphql(graphqlOperation(cqueries.listSubjectsCustom, {}));

            await console.log('==> Subjects Query');
            await console.log(lQueryRes);

            await this.setState({ subjectList: lQueryRes.data.listSubjects.items });

            await this.setState({ subListLoading: false });


        }
        catch (e) {

            console.log("==> DB Error");
            console.log(e);

            await this.setState({ subListLoading: false });

        };
    };

...
 _subjectItems = (value) => {

        console.log(value.desc);

        let lnum = (typeof value["num"] !== 'undefined') ? value["num"].toString() : null;
        let desc = value["desc"].toString();
        let lastName = (typeof value["users"][0] !== 'undefined') ? value["users"][0]["lastname"].toString() : null;
        let ltype = value["type"].toString();

        return (
            <DataTable.Row onPress={() => {
                this.props.navigation.navigate("UserListScreen", {pnum: lnum, ptype: ltype});
            }}>
                <DataTable.Cell>
                    {this._getTypeIcon(ltype)}
                </DataTable.Cell>
                <DataTable.Cell>
                    <Text>{desc}</Text>
                </DataTable.Cell>
                <DataTable.Cell>
                    <Text>{ lastName }</Text>
                </DataTable.Cell>
            </DataTable.Row>
        );
    };

    async componentDidMount() {
        try {
            await this._getSubjects();
        }
        catch (e) {
            console.log("==> componentDidMount error");
            console.log(e);
        };
    };

    isCloseToBottom = ({ layoutMeasurement, contentOffset, contentSize }) => {
        const paddingToBottom = 20;
        return layoutMeasurement.height + contentOffset.y >=
            contentSize.height - paddingToBottom;
    };


    fetchMore = () => {

    };


    render() {

        let sDimensions = this.scrollDimensions;

        return (

            <View style={{flex:20, margin:4, flexDirection:"column", justifyContent:"flex-start"}}>
    <Title style={{flex:1}}>Lista de Demandas</Title>
    <SafeAreaView style={[{flex:19, }, sDimensions]}>
        <ScrollView     
            contentContainerStyle={{}}
            onScroll={({nativeEvent}) => {
            if (this.isCloseToBottom(nativeEvent)) {
                this.fetchMore();
            }}}
            >
            <DataTable>
                <DataTable.Header>
                    <DataTable.Title>Type</DataTable.Title>
                    <DataTable.Title>Subj</DataTable.Title>
                    <DataTable.Title>Resp.</DataTable.Title>
                </DataTable.Header>            

                { !this.state.subListLoading ?
                    <FlatList 
                        data={this.state.subjectList}
                        renderItem={({item})=>this._subjectItems(item)}
                        keyExtractor={item => item.desc}
                    />    
                    :
                    <ActivityIndicator />
                }

            </DataTable>        
        </ScrollView>

    </SafeAreaView>
</View>
        )
    }
}

Используя Expo 37, React Native paper и AWS Amplify.

1 Ответ

1 голос
/ 31 мая 2020

Поскольку мне было так сложно найти несовместимые компоненты, я просто отбросил свою полную среду разработки, создал чистую и снова вытащил последнюю фиксацию, проверяя все компоненты версия за версией и убедившись, что все они были в версии -g. После этого ошибка прекратилась.

...