是否可以重命名重组HOC(更好的堆栈跟踪)?

时间:2018-02-08 21:11:13

标签: javascript higher-order-functions recompose

我喜欢billCity billFirstName billEmailAddress billLastName Traceback (most recent call last): File "./fl_bot.py", line 42, in <module> ele = ui.WebDriverWait(browser, 90).until(EC.element_to_be_clickable((By.XPATH, "//input[@id='"+info+"']"))) File "/Library/Python/2.7/site-packages/selenium/webdriver/support/wait.py", line 80, in until raise TimeoutException(message, screen, stacktrace) selenium.common.exceptions.TimeoutException: Message: ,但是当我使用它时,我最终会看到包含以下行的堆栈痕迹:

recompose

我有什么方法可以提供某种&#34;显示名称&#34;到各个HOC组件,以获得更多可读的堆栈跟踪?

3 个答案:

答案 0 :(得分:1)

查看此部分: https://github.com/acdlite/recompose#build-your-own-libraries

我相信你可以只为你的组件分配一个名为displayName的静态属性,它将被传递给堆栈跟踪以及React chrome扩展。

因此,如果你的HOC是这样编写的,你可以写:

const MyComponent = withProps(withHandlers(withHandlers(SelectionOverlay)))

MyComponent.displayName = "ArbitraryValue"

答案 1 :(得分:1)

有一种setDisplayName方法似乎可以满足您的要求 - https://github.com/acdlite/recompose/blob/master/docs/API.md#setdisplayname

答案 2 :(得分:1)

您可能想尝试recompact而不是在整个地方使用setDisplayName,而benchmarks旨在解决recompose ed组件可怕嵌套的问题。

作为一个令人愉快的补充,Sorting表明它比recompose快一点。