上传图像并更改背景

发布于 2025-02-08 14:51:53 字数 1364 浏览 1 评论 0原文

每当用户上传图像时,我都在尝试进行背景更改,但是默认设置了背景,但是,我发现我必须使用&lt; input /&gt; < /code>,但是后来我被卡住了

这是我到目前为止的工作!

const [backgroundShown, setBackgroundShown] = useState(false);

const changeBackground = () => {

        setBackgroundShown(!backgroundShown);
      };

        {file && (
                <img
                    className="writeImg"
                    src={URL.createObjectURL(file)}
                />
            )
        }
        <form className="writeForm" onSubmit={handlerSubmit}>
            <div className="writeFormGroup">
                <label htmlFor="fileInput">
                    <img 
                    type={backgroundShown ? "img" : "file"}
                    className="writeIcon"
                    src="/Images/Upload-Vector.png"
                    ></img>
                </label>
                <div>
                <input 
                onClick={changeBackground}
                type={backgroundShown ? "file" : "img"}
                accept="image/*"
                id="fileInput" 
                style={{ display: "none" }} 
                onChange={e => setFile(e.target.files[0])}>
                </input>
                </div>

I'm trying to make the background change whenever the user is uploading an image, the background is set on default however, I found that I have to use <input /> but then I got stuck

this my work so far !

const [backgroundShown, setBackgroundShown] = useState(false);

const changeBackground = () => {

        setBackgroundShown(!backgroundShown);
      };

        {file && (
                <img
                    className="writeImg"
                    src={URL.createObjectURL(file)}
                />
            )
        }
        <form className="writeForm" onSubmit={handlerSubmit}>
            <div className="writeFormGroup">
                <label htmlFor="fileInput">
                    <img 
                    type={backgroundShown ? "img" : "file"}
                    className="writeIcon"
                    src="/Images/Upload-Vector.png"
                    ></img>
                </label>
                <div>
                <input 
                onClick={changeBackground}
                type={backgroundShown ? "file" : "img"}
                accept="image/*"
                id="fileInput" 
                style={{ display: "none" }} 
                onChange={e => setFile(e.target.files[0])}>
                </input>
                </div>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

金兰素衣 2025-02-15 14:51:53

听起来您想在用户“上传”时删除按钮。

如果是这样,只需在没有上传上载用户时将其渲染。

  {file && (
                <img
                    className="writeImg"
                    src={URL.createObjectURL(file)}
                />
            )
        }
   {!file && 
        <form className="writeForm" onSubmit={handlerSubmit}>
            <div className="writeFormGroup">
                <label htmlFor="fileInput">
                    <img 
                    type={backgroundShown ? "img" : "file"}
                    className="writeIcon"
                    src="/Images/Upload-Vector.png"
                    ></img>
                </label>
                <div>
                <input 
                onClick={changeBackground}
                type={backgroundShown ? "file" : "img"}
                accept="image/*"
                id="fileInput" 
                style={{ display: "none" }} 
                onChange={e => setFile(e.target.files[0])}>
                </input>
                </div>
    }

It sounds like you want to remove the button when the user "uploads".

If so, just conditionally render it when the user hasn't uploaded.

  {file && (
                <img
                    className="writeImg"
                    src={URL.createObjectURL(file)}
                />
            )
        }
   {!file && 
        <form className="writeForm" onSubmit={handlerSubmit}>
            <div className="writeFormGroup">
                <label htmlFor="fileInput">
                    <img 
                    type={backgroundShown ? "img" : "file"}
                    className="writeIcon"
                    src="/Images/Upload-Vector.png"
                    ></img>
                </label>
                <div>
                <input 
                onClick={changeBackground}
                type={backgroundShown ? "file" : "img"}
                accept="image/*"
                id="fileInput" 
                style={{ display: "none" }} 
                onChange={e => setFile(e.target.files[0])}>
                </input>
                </div>
    }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文