리액트에서 인스타그램 기고를 매립할 때 빠져있는 거.
개요
새해 복 많이 받으세요.
나는 새해부터 인스타그램 투고의 삽입식과 싸우고 있다.새해에 처음으로 그곳에서 매혹적인 내용을 써 보았다.
하고 싶은 일
dangerouslySetInnerHTML
에 삽입합니다.또한dangerouslySetInnerHTML의 상세한 내용은 React의 dangerouslySetInnerHTML 사용를 참조하십시오.과제와 원인
//www.instagram.com/embed.js
이 실행되지 않았기 때문입니다.이것을 실행할 수 있도록 방법을 강구할 필요가 있다.대응
componentDidMount
.componentDidMount의 처리 시간에 관해서는 react의 DOM 구축 후 특정 처리를 원합니다의 글을 참고하십시오.이번 참조componentDidMount를 useEffect로 대체합니다,useEffect로 실시.샘플
export default function InstagramReactSample() {
const [posts, setPosts] = useState([]);
useEffect(() => {
// 自作で用意したバックエンドからインスタグラムの埋め込みコードを取得しセット(詳細は割愛)
getPosts(setPosts);
}, []);
useEffect(() => {
// 投稿の描画が終わったらスクリプトを読みこませる。
if (posts.length > 0) {
const script = document.createElement("script");
script.type = "text/javascript";
var attr = document.createAttribute("src");
attr.value = "//www.instagram.com/embed.js";
script.setAttributeNode(attr);
const head = document.getElementsByTagName("head")[0];
head.appendChild(script);
}
}, [posts]);
return (
{/* インスタグラムの埋め込みコード */}
<div>
{posts.length > 0 && (
<>
{posts.map((p) => {
return (
<div dangerouslySetInnerHTML={{ __html: p.instagramCode }} />
);
})}
</>
)}
</div>
);
}
Reference
이 문제에 관하여(리액트에서 인스타그램 기고를 매립할 때 빠져있는 거.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/someone7140/articles/604befba5871ca텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)