React原生:使用"react-native-markdown-display"时出现错误"输入数据应为字符串"

tzdcorbm  于 2023-03-09  发布在  React
关注(0)|答案(2)|浏览(161)

我得到这个错误后,使用React原生标记显示包,我不明白为什么...我只有字符串在我的内容数据库,所以它似乎是别的东西。
这是完整的错误:folow the link to see the error
我的代码如下:

//Libraries
import { SafeAreaView, ScrollView, StyleSheet, Text, View } from 'react-native';
import React, { useState } from 'react';
import Colors from '../constants/Colors';
import GoBackButton from '../components/GoBackButton';
import { useEffect } from 'react';
import Markdown from 'react-native-markdown-display';

const PostsDetails = ({ navigation, route }) => {
    const [post, setPost] = useState({});
    const [services, setServices] = useState([]);
    useEffect(() => {
        let { selectedPost } = route.params;
        setPost(selectedPost);
        setServices(selectedPost.services);
    }, []);

    console.log(services);

    return (
        <View style={styles.container}>
            <SafeAreaView style={{ flex: 1 }}>
                <ScrollView showsVerticalScrollIndicator={false}>
                    <GoBackButton onPress={() => navigation.goBack()} />
                    <Text>{post.title}</Text>
                    <Text>{post.region}</Text>
                    <Text>{post.category}</Text>
                    <Text>{post.id}</Text>
                    <Markdown>{post.content}</Markdown>
                    <Text>{post.itinerary}</Text>
                    <Text>{post.lat}</Text>
                    <Text>{post.lon}</Text>
                    <Text>{post.price}</Text>
                    <Text>{post.link}</Text>
                    {services.map((service, index) => {
                        return <Text key={index}>{service.attributes.name}</Text>;
                    })}
                </ScrollView>
            </SafeAreaView>
        </View>
    );
};

export default PostsDetails;

我没有在stackOverflow中发现任何类似的错误。
谢谢

qzwqbdag

qzwqbdag1#

当我使用markdown-it时遇到这个错误。问题是Docusaurus有内置的MDX支持,并且模块正在拾取我的markdown文件,在它们加载到我的代码之前将它们处理为JDX,这就是类型错误发生的时候。我通过简单地将我的markdown存储在.txt文件中来解决这个问题。所以模块忽略它们,它们可以作为简单的字符串加载。

oug3syen

oug3syen2#

这是因为你的对象{post.content]有时是空的,这在你处理数据的时候是很有可能的。

<Markdown>{post.content ? post.content: ''}</Markdown>

相关问题