javascript - React:将函数传递给 React 道具,但在组件中访问它时出错
问题描述
我在同一组件的两个单独渲染中传递了两个道具,并将一个道具作为函数传递,另一个作为字符串传递。但是在组件中访问它进行渲染时,它说:“props.prop1 不是函数”
这是我的 App.js 文件:
import React from 'react';
import Test from './components/Test';
function App() {
return (
<div className="App">
<header className="App-header">
<img src={logo} className="App-logo" alt="logo" />
<p>
Edit <code>src/App.js</code> and save to reload.
</p>
<Test prop1={() => {return "a"}}/>
<Test prop2="b"/>
</header>
</div>
);
}
export default App;
这是我的 Test.js 文件:
import React from "react";
function Test(props) {
return (
<>
<div className="test">
<div>Test data {props.prop1()} </div>
<div>{props.prop2}</div>
</div>
</>
);
}
export default Test;
解决方案
你正在通过prop1
,prop2
或者。所以你应该通过两个道具。
如果你想通过 props 替代,那么你可以这样做。prop1
如果不存在,则添加默认函数(仅调用但不会执行任何操作)
prop1 = () => {}
1)当你想显示div
价值时prop1
应该使用
import React from "react";
function Test({ prop1 = () => {}, prop2 }) {
return (
<>
<div className="test">
<div>Test data {prop1()} </div>
<div>{prop2}</div>
</div>
</>
);
}
export default Test;
2)如果你想隐藏div
如果prop1
不存在,那么你可以&&
使用
import React from "react";
function Test(props) {
return (
<>
<div className="test">
{
props.prop1 && <div>Test data {props.prop1()} </div>
}
{
props.prop2 && <div>{props.prop2}</div>
}
</div>
</>
);
}
export default Test;
推荐阅读
- google-bigquery - 将我的项目链接到我的结算帐户后无法更新表过期
- python - 组织和导入文件
- reactjs - 在 react-typescript 库中考虑多个对等依赖版本
- file - 如何复制带有坏扇区的大文件?
- node.js - MonogDB 按日期聚合 $group 以获取一些统计信息
- azure - 如何使用 Azure Powershell(不是 az cli)设置用户分配的标识?
- excel - 循环添加比预期更多的附件
- mule-studio - 简单 MEL 表达式的输入无效
- postgresql - 如何使用 ora2pg 提取公共 DBlink
- c++ - 带有连接的字符串类 с++