reactjs - 未定义的参数传递给自定义反应钩子中的 fn
问题描述
我正在使用自定义钩子打开一个将执行不同操作的模式。
useSongUtils
使用自定义钩子方法打开和关闭模态即时openModal
消息closeModal
:
export const useSongUtils = () => {
const [isEditing, setIsEditing] = useState(false);
const openModal = ({ cellData }) => {
// outputs undefined
console.log('cell data is', cellData);
setIsEditing(true);
};
const closeModal = () => {
setIsEditing(false);
};
return {
closeModal, isEditing, setIsEditing, openModal,
};
};
然后将返回的对象导入到我的组件中,在那里我有一个用于VirtualTable
呈现一些操作链接的方法。
单元格数据是一个 id,它在方法中正确显示optionsRender
(两个链接都有效 - 我得到了 id)。但是,想法是单击Button
元素,调用openModal
方法 fromusesongUtils
并设置isEditing
为 true。这样可行。
但是,我也试图cellData
在方法中获取参数,openModal
但它不起作用。undefined
如果我尝试的话,我会得到console.log
。
// SongList.js
const optionsRender = ({ cellData }) => (
<div className='songs-list__options'>
<Link to={`/songs/${cellData}/edit`}>
<Icon name='edit' style={{ margin: '0 .2rem .2rem 0' }} />
</Link>
<a rel='noreferrer' target='_blank' href={`localhost/client/song/${cellData}`}>
<Icon name='play' style={{ margin: '0 .2rem' }} />
</a>
{cellData} // I can see the data!!
// im trying to pass cellData to openModal
<Button size='tiny' className='ui button' fluid icon='setting' circular onClick={() => openModal(cellData)} />
</div>
);
const {
closeModal, isEditing, openModal,
} = useSongUtils();
解决方案
推荐阅读
- unity3d - 未找到字段 currentActivity 或类型签名
- javascript - 将 Google API 结果无限期存储在缓存中
- node.js - Elasticsearch nodeJS - 使用嵌套值的总和/减法搜索查询
- dart - 为什么在覆盖 == 运算符时不能使用相等规则?
- php - 将自定义上传的图像文件添加到 WooCommerce 产品表和发票 PDF
- css - 如何在网格内移动单个项目?
- apache-kafka - 使用 Kafka Streams 发送带有聚合警报的电子邮件
- django - django uwsgi logto 功能在 docker 中不起作用
- google-sheets - 如何在谷歌表中找到第二个大日期
- javascript - 是否可以在 Fomantic UI 多选下拉列表中为所选项目框着色。如果有怎么办?