I have a class component which makes an async call before render() and stores the result into its state. The async call is called before render with componentWillMount() which uses this.renderData(). The async response returns an array of arrays but in this case I am only interested in the first array. So I store the result collections.first into the state arrayData. I can successfully console.log the state arrayData which shows 8 elements (see screenshow). However, when I try to access an element with an index using Array.at(index) or Array[index] I get an undefined error.
How do I properly retrieve the index? The overall goal is to retrieve a value from the result and display an image in the render function <img src={this.state.arrayData.at[2].url}> </img>/ But Im unsure why Undefined is happening.
Here is what I have so far:
class Gallery extends React.Component {
constructor(props) {
super(props);
this.state = {
arrayData: null,
};
}
renderData = async () => {
// async request code here which sets fetchURL and requestOptions
const collections = await fetch(fetchURL, requestOptions).then((data) =>
data.json()
);
if (collections ) {
this.setState({ arrayData: collections.first });
}
}
};
componentWillMount() {
this.renderData ();
}
render() {
console.log(this.state.arrayData); // correctly outputs array of length 8 (see output below)
console.log(this.state.arrayData[2]); // undefined error
console.log(this.state.arrayData.at(2); // undefined error
return(
// some render code
<img src={this.state.arrayData.at[2].url}> </img> // cant retrieve
);
}
}
Array output from response shows 8 items fine when logging as this.state.arrayData

Error Code when logging with console.log(this.state.arrayData[2]);
react-refresh-runtime.development.js:315 Uncaught TypeError: Cannot read properties of null (reading '2')
at Gallery.render (Gallery.jsx:61:1)
at finishClassComponent (react-dom.development.js:19752:1)
at updateClassComponent (react-dom.development.js:19698:1)
at beginWork (react-dom.development.js:21611:1)
at beginWork$1 (react-dom.development.js:27426:1)
at performUnitOfWork (react-dom.development.js:26557:1)
at workLoopSync (react-dom.development.js:26466:1)
at renderRootSync (react-dom.development.js:26434:1)
at recoverFromConcurrentError (react-dom.development.js:25850:1)
at performSyncWorkOnRoot (react-dom.development.js:26096:1)
Error Code when logging with console.log(this.state.arrayData.at(2));
Uncaught TypeError: Cannot read properties of null (reading 'at')
at Gallery.render (Gallery.jsx:61:1)
at finishClassComponent (react-dom.development.js:19752:1)
at updateClassComponent (react-dom.development.js:19698:1)
at beginWork (react-dom.development.js:21611:1)
at beginWork$1 (react-dom.development.js:27426:1)
at performUnitOfWork (react-dom.development.js:26557:1)
at workLoopSync (react-dom.development.js:26466:1)
at renderRootSync (react-dom.development.js:26434:1)
at recoverFromConcurrentError (react-dom.development.js:25850:1)
at performSyncWorkOnRoot (react-dom.development.js:26096:1)