有什么方法可以通过道具将FontAwesomeIcon组件传递给ReactHTMLTableToExcel组件吗?

时间:2019-01-12 14:13:45

标签: javascript reactjs font-awesome

ReactHTMLTableToExcel接受字符串类型的prop buttonText,

<ReactHTMLTableToExcel
                   id="test-table-xls-button"
                   className="download-table-xls-button"
                   table="table-to-xls"
                   filename="tablexls"
                   sheet="tablexls"
                   buttonText="Download as XLS"/>

我想显示一个字体惊人的图标,而不是文本,因此请修改代码。

<ReactHTMLTableToExcel
                id="test-table-xls-button"
                className="download-table-xls-button"
                table="table-to-xls"
                filename="tablexls"
                sheet="tablexls"
                buttonText={<IconDownload />} />

这实际上工作正常,我的意思是我可以看到图标按钮,但是在控制台上出现错误:  道具类型失败:提供给buttonText的类型object的道具ReactHTMLTableToExcel无效,预期string

这是库的链接:https://www.npmjs.com/package/react-html-table-to-excel

那么,如何避免这些错误?

2 个答案:

答案 0 :(得分:3)

一种替代方法是向其传递一个空字符串(或空格,如果它检查是否为null),然后使用CSS :: before属性在内容中包含您的fontAwesome图标。这样可以避免PropTypes警告。

答案 1 :(得分:0)

这是因为库组件需要此属性的字符串,而是提供了一个对象。因此简短的答案是您不应该这样做。 但实际上,您可以创建该库的自定义版本,并将原型更改为对象,并根据需要的方式修改图标的呈现方式。但通常不建议将对象传递给字符串道具并寻找抑制警告的方法。