Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Css 如果appendChild和addEventListener正常工作,我需要做什么?_Css_Reactjs_Dom_Addeventlistener_Appendchild - Fatal编程技术网

Css 如果appendChild和addEventListener正常工作,我需要做什么?

Css 如果appendChild和addEventListener正常工作,我需要做什么?,css,reactjs,dom,addeventlistener,appendchild,Css,Reactjs,Dom,Addeventlistener,Appendchild,我可以看到这里的问题。按照代码执行的顺序,这些东西将在它仍然存在之前提取,但我根本不知道如何修复它 我想从我的firebase firestore数据库中获取一些信息,并以一种可以很好地显示的方式将其放入dom中 另一件事是,css文件不起作用导致了相同的问题。当我将属性设置为它时,它已经初始化,当然,它根本不会显示(例如:border:50%以进行pic循环) 我想学什么 import React from "react"; import firebase from &qu

我可以看到这里的问题。按照代码执行的顺序,这些东西将在它仍然存在之前提取,但我根本不知道如何修复它

我想从我的firebase firestore数据库中获取一些信息,并以一种可以很好地显示的方式将其放入dom中

另一件事是,css文件不起作用导致了相同的问题。当我将属性设置为它时,它已经初始化,当然,它根本不会显示(例如:border:50%以进行pic循环)

我想学什么

import React from "react";
import firebase from "./firebase";
import "./artists-styles.css";

const db = firebase.firestore();

const form = document.querySelector("#add-artist-avatar");

function renderArtists(doc) {
      
  const artistsAvatar = document.querySelector(".content");

  let image = document.createElement("img");

  image.setAttribute("src", doc.data().avatar);

  artistsAvatar.appendChild(image);
}

// getting data

db.collection("artists")
  .get()
  .then(snapshot => {
    console.log(snapshot.docs);
    snapshot.docs.forEach(doc => {
      console.log(doc.data());
      renderArtists(doc);
    });
  });

// saving data

form.addEventListener("submit", e => {
  e.preventDefault();
  db.collection("artists").add({
    avatar: form.avatar.value,
  });
  form.name.value = "";
});

const Artists = () => {
  return (
    <div>
      <h1>Cloud Cafe</h1>
      <form id="add-artist-avatar">
        <input type="text" name="avatar" placeholder="Artists Avatar Link" />
        <button>Add Avatar</button>
      </form>
      <div className="content"></div>
    </div>
  );
};

export default Artists;
从“React”导入React;
从“/firebase”导入firebase;
导入“/artists styles.css”;
const db=firebase.firestore();
const form=document.querySelector(“添加艺术家头像”);
函数渲染器(doc){
const artistsAvatar=document.querySelector(“.content”);
让image=document.createElement(“img”);
setAttribute(“src”,doc.data().avatar);
艺术家Savatar.appendChild(图像);
}
//获取数据
db.收藏(“艺术家”)
.get()
。然后(快照=>{
console.log(snapshot.docs);
snapshot.docs.forEach(doc=>{
console.log(doc.data());
演奏家;
});
});
//保存数据
表单.addEventListener(“提交”,e=>{
e、 预防默认值();
db.收藏(“艺术家”)。添加({
化身:form.avatar.value,
});
form.name.value=“”;
});
康斯特艺术家=()=>{
返回(
云咖啡馆
添加化身
);
};
导出默认艺术家;

也许你需要这样的东西

import React, { useEffect, useState } from "react";
import firebase from "./firebase";
import "./artists-styles.css";

const db = firebase.firestore();

const Artists = () => {
  const [docs, setDocs] = useState([]);
  const [inputValue, setInputValue] = useState('');
  
  useEffect(() => {
    db.collection("artists")
      .get()
      .then(snapshot => {
        console.log(snapshot.docs);
        setDocs(snapshot.docs);
      });
  }, []);
  
  const handleSubmit = e => {
    e.preventDefault();
    db.collection("artists").add({
      avatar: inputValue
    });
  };
  
  
  return (
    <div>
      <h1>Cloud Cafe</h1>
      <form id="add-artist-avatar" onSubmit={(e) => handleSubmit(e)}>
        <input
            type="text"
            name="avatar"
            placeholder="Artists Avatar Link"
            value={inputValue}
            onChange={e => setInputValue(e.target.value)}
        />
        <button>Add Avatar</button>
      </form>
      <div className="content">
        {docs.map(doc => (
          <img src={doc.data().avatar}/>
        ))}
      </div>
    </div>
  );
};

export default Artists;
import React,{useffect,useState}来自“React”;
从“/firebase”导入firebase;
导入“/artists styles.css”;
const db=firebase.firestore();
康斯特艺术家=()=>{
const[docs,setDocs]=useState([]);
常量[inputValue,setInputValue]=useState(“”);
useffect(()=>{
db.收藏(“艺术家”)
.get()
。然后(快照=>{
console.log(snapshot.docs);
setDocs(snapshot.docs);
});
}, []);
常量handleSubmit=e=>{
e、 预防默认值();
db.收藏(“艺术家”)。添加({
化身:输入值
});
};
返回(
云咖啡馆
handleSubmit(e)}>
setInputValue(e.target.value)}
/>
添加化身
{docs.map(doc=>(
))}
);
};
导出默认艺术家;

使用React时,应避免直接进行DOM操作。我建议在将组件装载到DOM中时检索艺术家(可以通过钩子或使用componentDidMount生命周期方法完成)。还可以查看有关如何在React()中使用表单的文档。我可以看到这里发生了什么,但它总是说“TypeError:无法读取未定义的属性‘form’。@minternational我已经编辑了我的答案。不过,我还是建议检查一下React表单上的文档。这应该解释很多。