【发布时间】:2021-11-20 16:00:31
【问题描述】:
我已经构建了一个用于渲染情绪的 ReactJS 组件。可以为每个表情构建单独的组件,但我想使用一个组件但根据需要传递单独的表情。
到目前为止,这是有效的:
emotion.js
import { faHeart } from "@fortawesome/free-solid-svg-icons";
import { faHeartBroken } from "@fortawesome/free-solid-svg-icons";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import React, { useState } from 'react';
const Emoction = () => {
return (
<FontAwesomeIcon icon={faHeart} />
);
};
export default Emoction;
emoction_hb.js
import { faHeart } from "@fortawesome/free-solid-svg-icons";
import { faHeartBroken } from "@fortawesome/free-solid-svg-icons";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import React, { useState } from 'react';
const EmoctionHb = () => {
return (
// <input type="text" />
<FontAwesomeIcon icon={faHeartBroken} />
);
};
export default EmoctionHb;
现在,我将这两个组件捆绑为:
expanded_content.js
import Emoction from "../emoctions/emoctions";
import EmoctionHb from "../emoctions/emoctions_hb";
import styled from "@emotion/styled";
import { faHeartBroken } from "@fortawesome/free-solid-svg-icons";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import React, { Component } from 'react';
const Merged = styled.div`
display: flex;
flex-direction: row;
justify-content: flex-start;
`;
const expandedContent = () => {
return(
<div>
<Merged>
<Emoction/>
<EmoctionHb/>
</Merged>
</div>
)
};
export default expandedContent;
当我使用 App.js
渲染时import React from 'react';
import ReactDOM from 'react-dom';
import {BrowserRouter as Router, Switch, Route} from 'react-router-dom';
import expandedContent from './components/merged_component/expanded_content'
class App extends React.Component {
render(){
return(
<Router>
<>
<Route path='/ExpandedContent' exact component={expandedContent}/>
</>
</Router>
)
}
}
export default App;
给我。
我想要做的是,我不想创建一个名为 emoctions_hb.js 的组件,而是想通过传递“faHeartBroken”作为其中的值来重用 emoction.js。 如果在没有任何值的情况下调用 emoction.js,我希望它使用“faHeartBroken”作为默认值。
尝试使用 https://webomnizz.com/change-parent-component-state-from-child-using-hooks-in-react/ 创建父子关系,但对我来说没有成功。
【问题讨论】:
-
情绪?我猜你的意思是 表情符号 ;)
标签: javascript reactjs components emoticons