達成しようとしているもの:入れ子要素からデータを取得します。流星 - 子から親に値を取得
私はそれを達成しようとしました:子の属性を使用して、親の要素を取得します。 this.refs
には、上位コンポーネントにはrefs
しか含まれていないように見えるため、機能しません。
SubmitStoryForm.jsx
は、ネストされたコンポーネントTextInput.jsx
を持ちます。これは、単純な<input />
コンポーネントです。
<TextInput label="Story name" refer="titleInput" />
<textarea className="materialize-textarea" ref="bodyInput" />
refer
属性がTextInput
にref
属性に入れているものです::textarea
要素理由のため
import React, {Component, PropTypes,} from 'react';
export default class TextInput extends Component {
render() {
const refer = this.props.refer;
console.log(refer);
const id = 'id_'+refer;
const type = this.props.type;
const col = this.props.col;
const label = this.props.label;
return (
<div className=
{col ? 'input-field col ' + col : 'input-field col s3'}>
<input
placeholder={this.props.placeholder}
id={id}
ref={refer}
type={type ? type : 'text'} />
{label ?
<label for={id}>
{this.props.label}
</label> : ''}
</div>
)
}
}
TextInput.propTypes = {
refer: PropTypes.string.isRequired,
};
作品罰金
は、だから、私は、フォームに2つの要素、SubmitStoryForm.jsx
を持っています親にはref
属性が定義されています。しかし、その責任を子供に渡すと、TextInput
、ref
は利用できません。
このコードはどのように構造化する必要がありますか?
this.refs.titleInput.value
SubmitStoryForm.jsx
で
が、
this.refs.bodyInput.value
が正常に動作します:私はしようとすると、
コード
は失敗します。エラー:
Uncaught TypeError: Cannot read property 'value' of null
ありがとう、これは私が探していたものです。それは正しい方法ではありませんでした。 – KSHMR