亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將 React Hook useState 與自定義實體對象一起使用?

如何將 React Hook useState 與自定義實體對象一起使用?

人到中年有點甜 2022-12-09 15:11:48
我在 React Native 中有一個 book 對象,我想使用 useState React Hook 在我的組件中使用這個對象,但我收到一條錯誤消息,指出“錯誤:對象作為 React 子對象無效(已找到:帶鍵的對象 {pages, title})。如果你打算渲染一個子集合,請改用數組?!边@是我的書課:export class Book {  pages: number;  title: string;  constructor(pages: number, title: string) {    this.pages = pages;    this.title = title;  }}這是我的 BookComponent 類:import React, {useState} from 'react';import {Text, View, Button} from 'react-native';import getSampleBookData from './BookPresenter';const BookComponent = () => {  const [bookData, setBookData] = useState([{pages: -1, title: 'Untitled'}]);  const getSampleBookDataHandler = () => {    const book = getSampleBookData();    setBookData(book);  };  return (    <View>      <Button title="Get Sample Book" onPress={getSampleBookDataHandler} />      <Text>{bookData}</Text>    </View>  );};export default BookComponent;我對 React Native 比較陌生,有人可以解決這個問題嗎?
查看完整描述

3 回答

?
紅糖糍粑

TA貢獻1815條經驗 獲得超6個贊

<Text>{bookData}</Text>

bookData 是一個數組。您不能使用內置組件顯示數組。做這樣的事情:


<View>

    <Button title="Get Sample Book" onPress={getSampleBookDataHandler} />

    {bookData.map((item) => (

        <Text>{item.title}</Text>

      ))}   

</View>


查看完整回答
反對 回復 2022-12-09
?
交互式愛情

TA貢獻1712條經驗 獲得超3個贊

由于它是一個對象數組,因此您應該遍歷該數組,這map是一個選項,也可以添加一個選項key,以便 React 可以更有效地更新組件。所以在 BookComponent 的返回值中你可以有


return (

    <View>

      <Button title="Get Sample Book" onPress={getSampleBookDataHandler} />

      {bookData.map((book) => <Text key={book.title}>{book.title}</Text>)}

    </View>

  );


查看完整回答
反對 回復 2022-12-09
?
絕地無雙

TA貢獻1946條經驗 獲得超4個贊

getSampleBookDataHandler 數據應該是相同的對象格式,如 { pages:1, title:'xxyy'}


import React, {useState} from 'react';

import {Text, View, Button} from 'react-native';

import getSampleBookData from './BookPresenter';


const BookComponent = () => {

  const [bookData, setBookData] = useState([]);


  const getSampleBookDataHandler = () => {

    setBookData(getSampleBookData);

  };


useState(() => {

  getSampleBookDataHandler();

},[getSampleBookDataHandler])


  return (

    <View>

      <Button title="Get Sample Book" onPress={getSampleBookDataHandler} />

      {bookData && <Text>{bookData.title}</Text> }

    </View>

  );

};


export default BookComponent;


查看完整回答
反對 回復 2022-12-09
  • 3 回答
  • 0 關注
  • 126 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號