【发布时间】:2021-09-19 07:49:18
【问题描述】:
在一个组件中,为什么我不能从不同的组件接收两个/多个道具?
我收到此错误:
TypeError: props.name 不是函数。
我做错了什么?
这是我尝试的方法-
function Welcome() {
const [searchString, setString] = useState('');
return (
<div className='App'>
<Header name={searchString} />
</div>
);
}
function Home() {
const [numbers,setNumbers] = useState('');
retrun(
<Header moneyAmount={numbers} />
)
}
function Header(props) {
return(
<div>
{props.name}
{props.moneyAmount}
</div>
)
}
所有人都尝试这种方式或function Header({name, moneyAmount}){}
字段。
createContext 或 useContext 有办法吗?
我尝试使用useContext,但我认为它与props 发生冲突,仍然报错。
【问题讨论】:
-
你正在创建两个独立的 React 元素。一个只有
name属性,另一个只有moneyAmount属性。我不确定我是否理解您的问题,但 React Context (reactjs.org/docs/context.html) 也可能会有所帮助。如果您的Home组件在App内部(反之亦然),您可以将 prop 从App传递给Home并将其传递给Header -
它仍然给
createContext一个错误可能它与道具碰撞Header正在获取,我不明白为什么。
标签: reactjs components parameter-passing react-props