gpt4 book ai didi

typescript - react 路由器参数不起作用

转载 作者:搜寻专家 更新时间:2023-10-30 21:41:48 26 4
gpt4 key购买 nike

我有一个待办事项应用程序,我正在尝试选择一个项目并将其发送到要编辑的页面。我看过这个帖子Getting query parameters from react-router hash fragment并注意到他们正在使用 this.props.location.query

我想要完成的是获取查询参数并将其显示在输入框中以供编辑。

import * as React from 'react'
import { Router, Route, IndexRoute, hashHistory, browserHistory, Link } from 'react-router'
import {ITask, IStoreAction, ActionType} from '../model/TasksModel'

import store from '../store/Store'

interface TaskEditProp {
task: ITask

}

class TaskEdit extends React.Component<TaskEditProp, {}>{
constructor() {
super();
this.state = store.getState()

store.subscribe(() => {
this.setState(store.getState())
})

//todo: console.log(this.props.location);

}

onSave = (e) => {
e.preventDefault();
var refs: any = this.refs;
var task: ITask = {
index: this.props.task ? this.props.task.index : 0,
text: refs.text.value,
done: false
}

var storeAction: IStoreAction = {
type: ActionType.EDIT_TASK,
task
}

store.dispatch(storeAction)
browserHistory.push('/')
}

onCancel = (e) => {
e.preventDefault();
browserHistory.push('/')
}

render() {

const { props: { children } } = this;
return (
<div className="">
<h3>Edit Task</h3>
<form onSubmit={this.onSave}>
<fieldset className="form-group">
<label for="task">Task</label>
<input type="text" ref="text" className="form-control" >{this.props.location}</input>
</fieldset>
<div className="btn-group">
<button className="btn btn-primary" >Save</button>
<button className="btn btn-warning" onClick={this.onCancel} >Cancel</button>
</div>
</form>

</div>
)
}
}

export default TaskEdit;

我假设我的界面不包含位置,所以 props 不知道位置。

我的路线是这样定义的:

var Routes = (
<Router history={browserHistory}>
<Route path="/" component={Tasks}>
<IndexRoute component={TaskList} />
<Route path="/add" component={TaskAdd} />
<Route path="/edit/:id" component={TaskEdit} />
</Route>
<Route path="/about" component={About}/>
</Router>
)

在我的商店发货后,我正在调用 browserHistory.push('/edit/'+task.index) 将我发送到正确的 View ,但我无法访问查询参数。我的其余代码可以在 https://github.com/crh225/HotReactAsp/tree/master/src/HotReactAsp/content 找到谢谢!

最佳答案

您可以打印您的 this.props 来查看 props 的呈现方式,并找到提取所需数据的正确方法。

我不知道你使用的是哪个版本的 react-router 但我知道获取查询参数的正确方法是:

let { id } = this.props.params;

还有这个

index: this.props.task ? this.props.task.index : 0,

会是

index: this.props.params.id ? this.props.params.id : 0,

关于typescript - react 路由器参数不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38666055/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com