tag
の複数の値をフェッチする配列内に投稿しようとしています。同じ配列の下に複数の値を投稿するフェッチをフェッチしよう
ただし、1つのアレイに接続して投稿しています。私はそれは常にそれtag
は現在、私はまた、より多くの提案を歓迎 tag
が
tag:[ {name: "value from field"}, {name: "next value from field"} ]
を送信する必要がありますか
tag:[{name: [null, null]}]
を送っ方法
を投稿したいと思います
このフォームを行うためのクリーンで効率的な方法。 this.state.value
の上にhandleSubmit
機能で
class AddNew extends React.Component {
constructor(props) {
super(props);
this.onTitleChange = this.onTitleChange.bind(this);
this.onTagChange = this.onTagChange.bind(this);
this.handleSubmit = this.handleSubmit.bind(this);
this.state = {
options: []
};
}
componentDidMount() {
fetch(TAG_API, {
})
.then(response => response.json())
.then(json => {
this.setState({ options: json });
});
}
onTitleChange(e) {
this.setState({ [e.target.name]: e.target.value });
console.log("the title has changed" + e);
}
onTagChange(value) {
this.setState({ value: value });
console.log("they look like this" + value);
}
handleSubmit(e, value) {
e.preventDefault();
return (
fetch(CREATE_API, {
method: "POST",
body: JSON.stringify({
title: this.state.itemtitle,
tag: [
{
name: this.state.value.map(e => {
e.name;
})
}
]
})
})
.then(res => res.json())
.catch(err => console.error(err))
);
}
render() {
return (
<div>
<form onSubmit={this.handleSubmit}>
<textarea
name="itemtitle"
type="text"
placeholder="Add new..."
onChange={this.onTitleChange}
/>
<button type="submit">Save</button>
</form>
<Select
mode="tags"
name="tagfield"
onChange={this.onTagChange}
>
{this.state.options.map(e => (
<Option value={e.name}> {e.name} ({e.taglevel}) </Option>
))}
</Select>
</div>
);
}
}
感謝。不思議なことに、それは空の値を返す "タグ:[{}、{}]"。ああ、私はそれを得ました。なぜなら、「e」には「名前」フィールドがないからです。 'e.name'を' e'に変更しました – Ycon
これはおそらく、オブジェクト全体ではなく 'e'name'を' Option'に代入したためです。 'Select'と' Option'がどのように実装されているか分からなければ、私は推測しかできません。 –
オブジェクト全体をどのように割り当てるのですか? – Ycon