gpt4 book ai didi

javascript - create-react-app 中的 src/images 文件夹

转载 作者:行者123 更新时间:2023-12-03 13:25:34 25 4
gpt4 key购买 nike

我有一个使用create-react-app搭建的应用程序。我想要这样的文件夹结构:

src/
components/
CustomAppBar.js
images/
logo.svg
App.js
index.tsx
images.d.ts

目前我想使用 CustomAppBar.js 中图像文件夹中的 logo.svg。目前该文件如下所示:

import React from 'react';
import PropTypes from 'prop-types';
import { withStyles } from '@material-ui/core/styles';
import AppBar from '@material-ui/core/AppBar';
import Toolbar from '@material-ui/core/Toolbar';
import Typography from '@material-ui/core/Typography';
import Button from '@material-ui/core/Button';
import IconButton from '@material-ui/core/IconButton';
import MenuIcon from '@material-ui/icons/Menu';
import logo from '*.svg';

const styles = {
flex: {
flex: 1,
},
menuButton: {
marginLeft: -12,
marginRight: 20,
},
root: {
flexGrow: 1,
},
};

function ButtonAppBar(props) {
const { classes } = props;
return (
<div className={classes.root}>
<AppBar position="static" title={<img styles={{height: '50px'}} src={logo} />}>
<Toolbar>
<IconButton className={classes.menuButton} color="inherit" aria-label="Menu">
<MenuIcon />
</IconButton>
<Typography variant="title" color="inherit" className={classes.flex}>
Title
</Typography>
<Button color="inherit">Login</Button>
</Toolbar>
</AppBar>
</div>
);
}

ButtonAppBar.propTypes = {
classes: PropTypes.object.isRequired,
};

export default withStyles(styles)(ButtonAppBar);

正如预期的那样,失败并显示:

找不到模块:无法解析“some\path\src\components”中的“*.svg”

images.d.ts 的内容是库存标准:

declare module '*.svg'
declare module '*.png'
declare module '*.jpg'

我在其他地方找到了一些提到修改 Webpack 配置的建议。看起来 create-react-app 隐藏了 Webpack 配置内容。对此,最佳实践是什么?

最佳答案

我通常对 /public/assets 下的 Assets 执行的操作 我导入文件,然后使用 src 在我的 React 组件中,我可以使用 process.env.PUBLIC_URL + '/assets/访问它们{在此处输入路径的其余部分}'

这是我如何实现它的代码示例。

import React, { Component } from 'react';

const iconPath = process.env.PUBLIC_URL + '/assets/icons/';

export default class TestComponent extends Component {
constructor(props) {
super(props);
}
render(){
return (<img
src={`${iconPath}icon-arrow.svg`}
alt="more"
/>)
}
}

这是让我开始以这种方式实现它的链接。 https://github.com/facebook/create-react-app/issues/2854

我还注意到您导入 Logo 不正确,应该是从'../images/logo.svg'导入 Logo 或者如果logo.svg没有导出默认值,您应该使用从'../images/logo.svg'导入{logo}

关于javascript - create-react-app 中的 src/images 文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50729967/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com