#reactjs
#reactjs
Вопрос:
Я хочу отобразить изображение из папки локального хранилища, я пробовал с приведенным ниже кодом, но он не работает, может кто-нибудь, пожалуйста, помочь мне.
import React, { useState } from 'react';
import './App.css';
import Post from './Post';
function App() {
const [posts, setPosts] = useState([
{
id: 1,
imageUrl: require('./img/naso.jpg'),
},
{
id: 2,
imageUrl: require('./img/bimal.jpg'),
}
]);
return (
<div>
{posts.map((post) => (
<Post
key={post.id}
imageUrl={post.imageUrl}
/>
))}
</div>
);
}
export default App;
Комментарии:
1. Я не могу понять, где в коде вы получаете изображение для рендеринга
2. Здесь нет никакого кода локального хранилища. Вы не можете требовать (‘..’) что-либо в
useState
исходных данных. Если вам просто нужен ImageUrl, зачем вы вызываетеrequire
?3. Это должно быть что-то вроде
useState([ { imageUrl: '.img/naso.jpg' } ]);
, а затем в вашем компоненте Post,<img src={imageUrl} />
4. братан, я попробовал это так же, как useState([ { ImageUrl: ‘.img/naso.jpg ‘ }]); но он показывает ошибку как TypeError: undefined не подлежит повторению (не удается прочитать символ свойства (Symbol.iterator))
Ответ №1:
Вам нужно импортировать изображение вверху:
import React, { useState } from 'react';
import './App.css';
import Post from './Post';
function App() {
const [posts, setPosts] = useState([
({
id: 1,
imageUrl: require('./img/naso.jpg')
},
{
id: 2,
imageUrl: require('./img/bimal.jpg'),
})
];
return (
<div>
{posts.map((post) => (
<Post
key={post.id}
imageUrl={post.imageUrl}
/>
))}
</div>
);
}
export default App;
Удачи…
Комментарии:
1. спасибо за ответ, сэр, я знал это раньше, но есть ли какой-либо другой способ без импорта ресурсов в разделе заголовка, разве мы не можем связать изображение с файлом в самом объекте массива.
2. спасибо, братан, эта крошечная недостающая скобка useState поймала меня на ошибке, в любом случае, еще раз спасибо