私のアプリでは、さまざまなページに多数のフォームがあります。保存されていないフォームに変更を加えた場合、ユーザーに警告通知を追加したいと思います。 React Router v4には、この機能が<Promt>
で組み込まれているようですが、App Router
コンポーネントとフォーム内に入れてみましたが、エラーReferenceError: formIsHalfFilledOut is not defined
が返されました。 EG Wihtin form
react-router v4 Promtの使い方
render() {
return (
<Form className="languageForm" onSubmit={this.handleFormSubmit}>
<SingleInput inputType={'text'} controlFunc={this.handleLanguageChange(language.uniqueId)} content={language.language} placeholder={'Language'} bsSize={null} error={language.errors && language.errors.language}/>
<input type="submit" className="btn btn-primary" value="Save"/>
<Prompt when={formIsHalfFilledOut} message="Are you sure you want to leave?"/>
</Form>
);
}
:どのように私はこれを正しく
EGを使用しないWithin App.jsx
const App = appProps => (
<Router>
<Prompt when={formIsHalfFilledOut} message="Are you sure you want to leave?"/>
<NavBar {...appProps}/>
<Grid className="main-page-container">
<Switch>
<Authenticated exact path="/" component={Home} {...appProps}/>
<Authenticated exact path="/admin/profile_candidate/edit/contact_details" component={ContactDetailsFormContainer} {...appProps}/>
<Authenticated exact path="/admin/profile_candidate/edit/summary" component={SummaryFormContainer} {...appProps}/>
<Route render={function() {
return <p>Page not found</p>;
}}/>
</Switch>
</Grid>
</Router>
);