我看过类似的帖子,但找不到答案,就我而言,我正试图通过以下方式采取行动<App />
:
addExpense = (expense) => {
console.log('Hello From AddExpenseForm');
}
到/create
路线在那里我渲染<AddExpenseForm />
组件
<Link to={{
pathname: '/create',
state: { addExpense: this.addExpense }
}}> Create Expense</Link>
链接已呈现,但是当我单击它时,控制台出现错误:
Uncaught DOMException: Failed to execute 'pushState' on 'History': function (expense) {
console.log('Hello From addExpense');
} could not be cloned
为什么会这样,这里的解决方法是什么?
Index.js中的路由:
const Routes = () => {
return (
<BrowserRouter>
<Switch>
<Route path="/" exact component={App} />
<Route path="/create" exact component={AddExpenseForm}/>
<Route path="/expense/:expenseId" name="routename" component={ExpenseDetails} />
<Route component={NotFound} />
</Switch>
</BrowserRouter>
)
}
App.js:
addExpense = (expense = {}) => {
console.log('Hello From AddExpenseForm');
}
goToNextPage = (addExpense) => {
this.props.history.push({
pathname: '/create',
state: { addExpense: this.addExpense }
});
}
render() {
return (
<div>
<Header
/>
<button onClick={this.goToNextPage}>Create</button>
...
首先 ,为您的addExpense
函数添加一些默认值:
addExpense = (expense = DEFAULT) => {
console.log('Hello From addExpense');
}
然后 使用Link
:
<Link to={`/ideas/${this.addExpense}`}>Create Expense</Link>
或 尝试以下 方法 ( 更好的方法 ):
goToNextPage = (addExpense) => {
this.props.history.push({
pathname: '/create',
state: { addExpense: addExpense }
});
}
在next(create
)组件中,使用传递的值,如下所示:
this.props.location.state.addExpense();
问题内容: 我有时看到人们在导出组件时将它们包装起来: 这是做什么用的,什么时候应该使用? 问题答案: 当您在应用程序中包含主页组件时,通常将其包装在这样的组件中: 这样,该组件便可以访问,因此可以使用重定向用户。 某些组件(通常是标头组件)出现在每个页面上,因此没有包装在中: 这意味着标题不能重定向用户。 要解决此问题,可以在导出时将标头组件包装在一个函数中: 这使组件可以访问,这意味着标题现在
两者都有路由、链接等。什么时候使用其中一种?我真的很困惑在哪里使用每一个。服务器端?客户端? https://reacttraining.com/react-router/ 在一些例子中,你需要通过历史,在另一些例子中则不需要。要怎么做? vs 什么时候使用一个或另一个真的很混乱,任何帮助都值得赞赏。
问题内容: 每当我尝试在React中使用FontAwesome微调器图标(带有)时,都会出现以下错误: 编辑: 问题已经出现了好几次了,并且代码本身真的没有什么特别的。我一直使用微调器作为加载图标,并且每当用内容替换微调器时都会发生错误。例: ) 问题答案: 我想我知道为什么会这样。看来这与FontAwesome 5用标签替换标签的方式有关。我相信这与React处理从DOM中删除元素的方式不兼容。
我有一个大量使用WebView的JavaFX应用程序。我正在尝试向DOM中插入一个JavaScript代码可以使用的对象,并且我需要这些对象在加载新页面时可用。 但是,当我运行程序时,FirebugLite在DOM中显示了对象,但是函数没有执行。 根据Oracle的一些文档,这似乎是提供从JavaScript到Java的向上调用的适当方式。我也看到过一些StackOverflow的帖子解释了同样的
问题内容: 两者都有路由,链接等。何时使用一个或另一个?我真的很困惑在哪里使用每个。服务器端?客户端? https://reacttraining.com/react-router/ 在某些示例中,您需要传递历史记录,而在其他示例中则不需要。该怎么办? 与 何时使用一个或另一个非常令人困惑,任何帮助都值得赞赏。 问题答案: react-router 包含 react-router-dom 和 re
我已经尝试更新我的软件包,就像这个问题说的,但它没有工作。 唯一有效的方法是将更改为,但我不知道它们之间有什么区别,也不知道为什么要追加