मेरे पास यह प्रतिक्रिया/टाइपप्रति पृष्ठ है:
प्लेयर्सपेज.tsx
import React, { useState, useEffect } from 'react';
import { Page } from './Page';
import { PageTitle } from './PageTitle';
import { Button, Card } from 'react-bootstrap';
function PlayersPage() {
const [isLoading, setIsLoading] = useState(false);
const [playersData, setPlayersData] = useState([]);
//Fetch all players from database
useEffect(() => {
//setIsLoading(true);
fetch('http://localhost:44326/api/Players')
.then((response) => {
if (response.ok) {
return response.json();
}
})
.then((data) => setPlayersData(data));
//.then(setIsLoading(false));
}, []);
return (
<Page>
<div style={{ padding: 20 }}>
<PageTitle>Toons</PageTitle>
</div>
<div>
{playersData.map((data) => (
<div key={data.ID}>
<Card>
<Card.Title>{data.ID}</Card.Title>
<Card.Text>{data.Handle}</Card.Text>
<Card.Body>
<div className="lables">
<Card.Text>Role</Card.Text>
</div>
<div className="lables">
<Card.Text>{data.Role}</Card.Text>
</div>
<Button variant="primary">Work</Button>
</Card.Body>
</Card>
<br></br>
</div>
))}
</div>
</Page>
);
}
export default PlayersPage;
मुझे यह त्रुटि मिल रही है: Property 'ID' does not exist on type 'never'.ts(2339)
प्रत्येक पंक्ति पर जिसमें data.ID
या data.whatever
है।
उन मूल्यों का कभी भी उपयोग क्यों नहीं किया जाएगा या हमेशा शून्य क्यों होंगे? मैं कुछ अन्य ऐप्स में लगभग समान कोड का उपयोग करता हूं इसलिए मुझे यकीन नहीं है कि इस स्थिति के बारे में क्या अलग है। अग्रिम में धन्यवाद।
1
GrillOwner69420
20 अगस्त 2021, 05:16
1 उत्तर
सबसे बढ़िया उत्तर
जब आप इसे डिकैल करते हैं तो आपको playersData
के लिए टाइप जोड़ना होगा।
interface DataType {
ID: string;
Handle: string;
Role: string;
}
const [playersData, setPlayersData] = useState<Array<DataType>>([]);
3
Viet
20 अगस्त 2021, 05:40
क्या यह सिर्फ एक टाइपस्क्रिप्ट चीज है? मैंने पहले कभी किसी प्रतिक्रिया परियोजना में टाइपस्क्रिप्ट का उपयोग नहीं किया है और पहले कभी भी टाइप नहीं जोड़ना पड़ा है। हालांकि यह समझ में आता है।
– GrillOwner69420
20 अगस्त 2021, 17:19
इसके अलावा, isLoding के लिए क्या है? अगर मैं इसे इस तरह सेट करता हूं: ```` const [isLoading, setIsLoading] = useState(false); ```` तो मैं बाद में इसे सही पर सेट कर सकता हूं ठीक है ```` setIsLoading(true); ```` लेकिन जब मैं इसे फिर से गलत पर सेट करने का प्रयास करता हूं तो मुझे यह त्रुटि मिलती है: ```` प्रकार का तर्क 'शून्य' प्रकार के पैरामीटर के लिए असाइन करने योग्य नहीं है '((मान: शून्य) => शून्य | PromiseLike) | शून्य | अपरिभाषित'.ts(2345) ````
– GrillOwner69420
20 अगस्त 2021, 18:14
संबंधित सवाल
नए सवाल
reactjs
प्रतिक्रिया उपयोगकर्ता इंटरफ़ेस के निर्माण के लिए एक जावास्क्रिप्ट पुस्तकालय है। यह एक घोषणात्मक, घटक-आधारित प्रतिमान का उपयोग करता है और इसका उद्देश्य कुशल और लचीला दोनों है।
useState([])
को इनिशियलाइज़ करते हैं तो यह स्वचालित रूप से डेटा प्रकार कोnever[]
मान लेगा।never
टाइपस्क्रिप्ट में एक विशेष डेटाटाइप है, जो कुछ भी अनुमति नहीं देता है, आप इसे टाइपस्क्रिप्ट डॉक्स में देख सकते हैं।never
सामान्य रूप से यह सुनिश्चित करने के लिए होता है कि फ़ंक्शन से कुछ भी वापस नहीं किया जाता है।