質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Redux

Reduxは、JavaScriptアプリケーションの状態を管理するためのオープンソースライブラリです。ReactやAngularで一般的にユーザーインターフェイスの構築に利用されます。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

Q&A

1回答

3286閲覧

Reactのformでhiddenの値をvaluesに追加したい

onakahetta

総合スコア23

Redux

Reduxは、JavaScriptアプリケーションの状態を管理するためのオープンソースライブラリです。ReactやAngularで一般的にユーザーインターフェイスの構築に利用されます。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

0グッド

0クリップ

投稿2019/07/18 01:31

編集2019/07/18 01:43

お世話になっております。
ReactとReduxで書かれたWebアプリのコードに手を加える形で実装を行っています。

react-formを使った複数の入力項目があるformがあり、そちらにもう1つhiddenの項目を追加したいのですがうまくいきません。
他の項目はvaluesという変数?にまとめて入るようなのですが、こちらに追加されず困っています。
公式ドキュメントにもhiddenについての記載がないように見えました。

https://discordapp.github.io/discord-react-forms/components/hidden-field.html
この記事にHiddenFieldというものがあったので

React

1<HiddenField value={hoge} name='hoge' />

こういう形で書いたのですが、下記のようなエラーになってしまいます。

Cannot read property 'toLowerCase' of undefined TypeError: Cannot read property 'toLowerCase' of undefined at ReactDOMServerRenderer.renderDOM (/usr/src/app/node_modules/react-dom/cjs/react-dom-server.node.development.js:2776:28) at ReactDOMServerRenderer.render (/usr/src/app/node_modules/react-dom/cjs/react-dom-server.node.development.js:2755:23) at ReactDOMServerRenderer.read (/usr/src/app/node_modules/react-dom/cjs/react-dom-server.node.development.js:2722:19) at renderToString (/usr/src/app/node_modules/react-dom/cjs/react-dom-server.node.development.js:2980:25) at renderPage (/usr/src/app/node_modules/next/dist/server/render.js:174:26) at Function.getInitialProps (/usr/src/app/node_modules/next/dist/server/document.js:83:25) at Function._callee$ (/usr/src/app/pages/_document.js:6:25) at tryCatch (/usr/src/app/node_modules/babel-runtime/node_modules/regenerator-runtime/runtime.js:65:40) at Generator.invoke [as _invoke] (/usr/src/app/node_modules/babel-runtime/node_modules/regenerator-runtime/runtime.js:299:22) at Generator.prototype.(anonymous function) [as next] (/usr/src/app/node_modules/babel-runtime/node_modules/regenerator-runtime/runtime.js:117:21)

refを使う方法も試してみたのですが、いまいち理解できずこちらもエラーが起きてしまいました。

どこかでvaluesにセットしているのでしょうか?ソースコード上ではそれらしい箇所が見つからなかったのですが...
ご教授いただければ幸いです。よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jun68ykt

2019/07/18 01:38

Cannot read property 'toLowerCase' of undefined というエラーメッセージが表示されているので、 toLowerCase を使っているコンポーネントまたは他の何らかのソースコードもご質問に追記頂けると、解決につながる回答を得られ易いと思います。
onakahetta

2019/07/18 01:44 編集

ありがとうございます。 エラーメッセージを全て追記しました。
jun68ykt

2019/07/18 01:53

エラーメッセージの追記ありがとうございました。お手数ですが、先にお願いしたように、あわせて、toLowerCaseを使っているコードを含むReactコンポーネントまたは他の何らかのJavaScript のソースコードも追記して頂けると、より原因の特定がしやすいです。 あるReactコンポーネントの何らかのメソッドの中で、toLowerCase を使っているのであれば、できればそのコンポーネントのソース全体のコードを、回答者が確認できるとよいですが、長すぎる場合、そのメソッド(と、そのメソッドがコンストラクタやライフサイクルメソッドのいずれでもない場合は、そのメソッドを使っている箇所)のソースコードだけでもかまいません。見たいのは、エラーの起きている、toLowerCase は何に対して、toLowerCaseしているのか、です。
jun68ykt

2019/07/18 02:02

あるいは、 ご自身で書いたコードの中には、 toLowerCase を使っている箇所は無いということでしょうか?
onakahetta

2019/07/18 02:07

ソースを見たところtoLowerCaseを直接的に使っている箇所はなく、質問にあるHiddenFieldを書くとエラーが出ます。例えばこのHiddenFieldをinputに書き換えるとエラーが出なくなります。 なので原因はここかなと思うのですが… 回答になっていなくて申し訳ないです。 ちなみにHiddenFieldは import { HiddenField } from 'react-form' でインポートできるかと思って書きましたがこれが間違いですかね?
guest

回答1

0

こんにちは

質問への追記・修正の依頼へのコメントに返信する形で回答します。

ソースを見たところtoLowerCaseを直接的に使っている箇所はなく、

とのことですね。ひとつ気になった点は、ご質問に

react-formを使った複数の入力項目があるformがあり、

とあって、この react-formとは、https://www.npmjs.com/package/react-form のことだと思いましたが、

・・・この記事にHiddenFieldというものがあったので

との この記事 は、discord-react-forms という、別のモジュールの説明になっています。なので、react-form によるフォームの中で、 discord-react-forms による HiddenField を使おうとしているのかなと思われて、
「それはうまくいかないのでは?」
という気がしました。

import { HiddenField } from 'react-form' でインポートできるかと思って書きましたがこれが間違いですかね?

はい。react-formのソースを見ても、HiddenField というコンポーネントをexport していないので、たぶんインポートできていないと思われます。

ちなみに、npmjs のreact-formの説明の冒頭に

UNMAINTAINED

This library is no longer supported and has been deprecated in favor of the following libraries:

・React-Final-Form -

A superior libary offering similar and/or better functionality that the original react-form.

・Informed -

React-Form reimagined and rewritten from scratch by @joepuzzo, a previous maintainer of react-form

とあるので、in favor of として挙げられている2つのいずれかを利用することを検討するのもありかもしれません。

以上参考になれば幸いです。

投稿2019/07/18 02:44

jun68ykt

総合スコア9058

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

onakahetta

2019/07/18 03:15

ご回答ありがとうございます。 なるほど、HiddenFieldはreact-formのものではないのですね。 react-formをインポートしている他のform項目にTextareaやRadioGroupというものがあるのですが、貼っていただいたreact-formのソースにないということは、これもreact-formから使っているわけではないということでしょうか? 質問ばかりになってしまい申し訳ございませんが、ご教授お願い致します。
onakahetta

2019/07/18 04:12

ソースのリンクとてもありがたいです... 確かにdiscord-react-formsの方を使ってそうな感じですね。 こちら見ながら自分でももう少し調べてみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問