反応でNetlify接触フォームを加える方法
私は最近Netlifyを使用して私のポートフォリオのウェブサイトの連絡先フォームを作成し、それを設定するいくつかの時間がかかりました.私は、同じポストをしようとしてそこに他の貧しい魂を助けるために、このポストを書きました.
以下のようになります.
注:私は、私を案内するためにこれらの2つの非常に役に立つ記事を使いました:this one and this .
簡単な連絡フォームを作成します 重要:NetLify組み込み機能をフォームの提出を処理するために追加します.ルックアット また、NetLifyはフォーム内に隠し入力を追加することを推奨します.ここで重要な属性は
netlifyあなたのコードに次のブロックを追加することを推奨します
The
ここの目標は何ですか.人々があなたのウェブサイトにとどまるのを援助するために. 以下を含むコードを加えてください 重要:確認してください 注:このコードのほとんどは、私が導入で言及した記事のうちの1つからとられました.
既にあなたのサイトを展開していると仮定して、NetLifyプロジェクトダッシュボードでフォームの投稿を確認してください 次のようになります.
それです.うまくいけば、それは期待通りに働きました.そうでないならば、ちょっと私に知らせてください、そして、我々は道を見つけます😉
以下のようになります.
注:私は、私を案内するためにこれらの2つの非常に役に立つ記事を使いました:this one and this .
ステップ1 : netlify属性でフォームを追加する
name
, method
and data-netlify
内部の属性form
元素value
, フォームの名前と同じです.<Container maxWidth='sm'>
<h2>CONTACT</h2>
<Card>
<form
name="contact"
method="POST"
data-netlify="true"
>
<input type="hidden" name="form-name" value="contact" />
<TextField id="standard-basic" label="name" name="name" />
<TextField id="standard-basic" label="email" name="email" />
<TextField multiline id="standard-basic" label="message" name="message" />
<Button type="submit">Send</Button>
</form>
</Card>
</Container>
ステップ2 :別のフォームをインデックスに追加します。HTMLファイル
index.html
ファイルを開く<body>
NetLifyがフォームを処理できるようにするためのタグ.action
属性はここでリダイレクトするために使用されます.次のステップでこれ以上.<!-- A little help for the Netlify post-processing bots -->
<form name="contact" netlify netlify-honeypot="bot-field" action='/' hidden>
<input type="text" name="name" />
<input type="email" name="email" />
<textarea name="message"></textarea>
</form>
ステップ3 :成功メッセージを追加し、リダイレクトを避ける
useEffect
and useState
の下のメッセージと同様に<h2>
タグaction
内部属性form
要素はユーザを正しいパスに取ります.私の場合では"/contact/?success=true"
ここで私のルートと私のコンポーネントの名前です.//Final code
export default function Contact() {
const [success, setSuccess] = useState(false);
useEffect(() => {
if ( window.location.search.includes('success=true') ) {
setSuccess(true);
}
}, []);
return (
<Container maxWidth="sm">
<h2>CONTACT</h2>
{success && (
<p style={{ color: "green" }}>Thanks for your message! </p>
)}
<Card>
<form
name="contact"
method="POST"
action="/contact/?success=true"
data-netlify="true"
>
<input type="hidden" name="form-name" value="contact" />
<TextField id="standard-basic" label="name" name="name" /> <br />
<TextField id="standard-basic" label="email" name="email" /> <br />
<TextField
multiline
id="standard-multiline-static"
label="message"
name="message"
/>
<br />
<div>
<Button type="submit">Send</Button>
</div>
</form>
</Card>
</Container>
);
}
ステップ4 :最終的に、フォームの投稿を確認してください
それです.うまくいけば、それは期待通りに働きました.そうでないならば、ちょっと私に知らせてください、そして、我々は道を見つけます😉
Reference
この問題について(反応でNetlify接触フォームを加える方法), 我々は、より多くの情報をここで見つけました https://dev.to/deboragaleano/how-to-create-a-netlify-contact-form-in-react-5bmaテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol