我正在创建事件管理客户端服务器应用程序,其中管理面板提供了修改现有模块的功能。
当用户根据表中显示的模块信息单击编辑按钮时,会将唯一的模块ID传递给editModuleForm()以便修改数据库中的模块。
问题是我得到一个未定义的值,当编辑组件出于某种原因呈现时,模块ID传递了该值。该组件仅在用户单击“编辑”按钮时才需要渲染,而在单击“交叉”按钮时才需要删除。
这是我正在管理的状态,编辑面板在该状态下将黑白控制切换为true或false。
#include <algorithm>
//...
int main()
{
std::vector<std::string> test = {"this is a test", "another a test"};
std::unordered_set<std::string> stops = {"is", "test"};
// Use std::transform
std::transform(test.begin(), test.end(), test.begin(),
[&](const std::string& s){return remove_stop_words(s, stops);});
std::cout << "Changed words:\n";
for ( auto& s : test )
std::cout << s << "\n";
}
在编辑按钮代码中切换状态并传递模块ID
this.state = {
editModuleDisplay: false,
}
在editModuleForm()
中<i className="fa fa-pencil text-warning padding-left-lg iconStyles"
onClick={ async () => {
await this.editModuleForm(props.original.m_id)
await this.setState({
editModuleDisplay: true
})
}}
/>
在render()
editModuleForm = (id) => {
console.log(id) //logging the module id
return ( some JSX form )
}
我希望在编辑表单中具有模块ID,因此当用户修改模块时,我可以通过数据库中的唯一模块ID来修改模块。
快速说明:我对Redux不熟悉,因此,如果Redux有所帮助,请简要介绍。
答案 0 :(得分:0)
根据您显示的代码,您正在尝试对一个函数而不是一个Promise进行异步调用。 editform不是Promise,所以您迫不及待。如果您要共享状态,则需要从父组件中传递状态,请根据您要执行的操作使用Context API或Redux。
答案 1 :(得分:0)
您可以将表单ID本身存储在react状态下并相应地传递:
editModuleForm = (id) => {
this.setState({
editingFormId:id
})
console.log(id) //logging the module id
return ( some JSX form )
}