我正在尝试创建一个类似Dropbox的文件浏览器。会有不确定数量的子路径,如下所示:
localhost:3001:file-manager/folder1/folder2/...folderN
我有这个:
<Route path="/file-manager/:folderName" component={LandingPage} />
这使我可以访问:http://localhost:3001/file-manager/foo/bar/baz。但是,当我未选中props.match
时,它仅显示foo
的匹配项,而不显示低于该水平的值(条形和底线)。
match:
isExact: false
params: {folderName: "foo"}
path: "/file-manager/foo"
url: "/file-manager/foo"
我该怎么做?我正在阅读并观看有关递归路由的所有教程追加到视图。我想替换视图。
答案 0 :(得分:1)
几个月前,我遇到了完全相同的问题。我目前找不到我使用的确切代码,但是如果我没记错的话,可以使用星号表示“此后的一切”,其中包括任何其他路径分隔符:
<Route path="/file-manager/:folderName*" component={LandingPage} />
这确实意味着props.match.params.folderName
将是完整的字符串,因此如果需要一系列路径组件,则必须由/
自己进行分割。
重要说明:*
将使其与任何内容匹配,因此,如果您要匹配特定的路线,请确保将其放在之前,例如
<Route path="/file-manager/example" component={ExamplePage} />
<Route path="/file-manager/:folderName*" component={LandingPage} />
答案 1 :(得分:0)
我认为正在发生的事情在某种程度上是正确的,因为您仅在路由声明中定义了一层嵌套的路由:
<Route path={`${this.props.match.url}/:folderName`} component={LandingPage} />
因此,找到的第一个路径参数(在您的情况下为<Route path="/file-manager/:folderName" component={LandingPage} />
)与Recursive Routes
属性匹配,而其他参数则被忽略。
我从来没有做过这样的事情,但是我只能想象它可以使用动态路由定义来工作。当然,仅当您的应用将为自第一个路由生成的所有路由呈现相同的组件时,此方法才起作用。
%python
spark.conf.set("spark.sql.execution.arrow.enabled", "true")
import pandas as pd
processed_table.toPandas().to_parquet("/dbfs/intermediate", engine="fastparquet", compression = None)
这样的事情应该可以防止您报告的问题。但是您必须放置一个外部路由定义才能开始路由递归。在这种情况下,您的情况会很好。
preprocess.py
您可以在import pandas as pd
intermediate = pd.read_parquet("/dbfs/intermediate")
一章中的here上找到类似的内容。
希望这会有所帮助!