我对React和react-admin还是一无所知。我搜索了很多资源,但找不到任何有价值的提示。我的用例如下:
这是我的List
组件之一的示例。这提供了用于创建新项目的默认按钮,该新项目将用户重定向到Create
视图。
export const CountryList = props => (
<List
sort={{ field: "name", order: "ASC" }}
filters={<CountryListFilter />}
{...props}
>
<Datagrid>
<TextField source="name" />
<TextField source="iso3" />
<EditButton />
</Datagrid>
</List>
);
我想提供一个动态的默认值,而不是一个空的Create
形式。如果用户单击List
视图中的“创建”按钮,我希望发生以下情况:
Create
表单。虽然我知道如何使用axios发出GET请求,我不知道:
我的想法是,我可以以某种方式“重载”创建按钮的默认功能。
答案 0 :(得分:1)
好吧,我从未使用过react-admin,但我会尽力帮助您。
在“创建”按钮中,应该有一个onClick事件函数。然后您在此处发出请求并调用this.setState以重新呈现您的组件
通过州或道具:)
我的想法是:
import React, { Component } from 'react';
class Example extends Component {
state = { input: "default" }
handleInputChange = evt => {
console.log("user changing input")
this.setState({ input: evt.target.value });
}
handleClick = () => {
console.log("user clicked the button")
// server request part...
.then(data => this.setState({input: data}))
}
render() {
return ( <div>
<input value={this.state.input} type="text" placeholder="ISO" onChange={evt => this.handleInputChange(evt)}></input>
<button onClick={this.handleClick()}></button>
</div> );
}
}
export default Example;
我真的不知道我是否让你更加困惑:/