簡體   English   中英

反應原生未定義變量

[英]react-native undefined variable

我的 react-native 變量有問題。 當我用console.log()顯示我的變量時,一切都很好,我得到了它的內容。 但是當我將它與map一起使用時,我的變量未定義。 這是我的代碼。

const ServiceAction = (props) => {
    const { services } = props;
    console.log("Services:", services)
    return services.map((service, index) => {return <Text key={index}>{service.name}</Text>})
}

因此,當我將它與地圖一起使用時,這里的服務是未定義的,但在我顯示它時則不是。

我之前調用了我的函數。

 const Dashboard: () => React$Node = (props) => {
        // const [state, dispatch] = React.useReducer(userReducer, props.navigation.getParam("user"));
        // const ip = props.navigation.getParam("ip");

        const ip = "192.168.1.37";
        const [state, dispatch] = React.useReducer(userReducer, initialStateUser);

        const [services, setServices] = React.useState([]);
        const [serviceAction, setServiceAction] = React.useState("Default");

        React.useEffect(() => {
            fetch(`http://${ip}:8080/about.json`)
                .then((response) => {return response.json()})
                .then((data) => setServices(data.server.services))
                .catch((err) => console.log(err))
        },[])


        return (
            <LinearGradient start={{x: 0, y: 0}} end={{x: 1, y: 1}} colors={['rgba(58,115,215,1)', 'rgba(44,120,215,1)', 'rgba(68,116,213,1)', 'rgba(47,105,191,1)', 'rgba(131,75,191,1)', 'rgba(198,98,237,1)']} style={styles.linearGradient}>
                <Image style={{width: 400, height: 50}} source={require('../assets/logo.png')}/>
                <ServiceAction services={services} />
            </LinearGradient>
        )
    }

如果有人有想法...

編輯:

服務是一種 JSON 格式

Services = [{
  name: 'toto'
 }, {
  name: 'titi'
 }
]

試試這樣:

const ServiceAction = (props) => {
    const { services } = props;
    let testArray = []
    console.log("Services:", services)
    services.map((service, index) => {testArray.push(<Text key={index}>{service.name}</Text>)})
    return testArray
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM