1

Web 用のアプリを開発していましたが、正常に動作しています。しかし、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 ペーパー、AWS Amplify を使用。

4

1 に答える 1