前提・実現したいこと
親コンポーネントで選択されたwordsを子コンポーネントで使いたいのですが、
propsの受け渡しができていないみたいで、
どの様にコードを書けばいいかわかりません。
検索ボックス+検索ボタンが子コンポーネントとなっており、
それより下は親コンポーネントとしております。
にらを選択すれば検索ボックスの左横に<span>にら</span>が追加されるようにしたいです。
発生している問題・エラーメッセージ
C:\Users\matus\GATSBY\Serch\src\components\searchbar.js 5:3 warning Useless constructor no-useless-constructor 11:9 error 'props' is not defined no-undef
該当のソースコード
javascript
1import React from "react" 2import "./wordlist.css" 3import Searchbar from './searchbar' 4 5const vegetables = [ 6 '大根', '玉ねぎ', 'キャベツ', '白菜', '人参', 'トマト', 7 'きゅうり', 'かぼちゃ', 'レタス', 'もやし', 8 'ねぎ','ブロッコリー','ピーマン','ごぼう','なす','かぶ','れんこん', 9 'ほうれんそう','小松菜','ちんげん菜','じゃがいも','にら' 10]; 11 12class Wordlist extends React.Component { 13constructor(props){ 14 super(props); 15 const words=[{ 16 },] 17 this.state={ 18 words:words, 19}; 20this.onWordSelected=this.onWordSelected.bind(this) 21} 22 onWordSelected(e){ 23 e.preventDefault(); 24 const words = this.state.words.slice() 25 console.log(e.target.innerText) 26 words.push(e.target.innerText 27 ) 28 this.setState({words}) 29 }; 30 31 render() { 32 return ( 33 <div className="wordfont"> 34 <Searchbar data={this.state.words} /> 35 {vegetables.map(word => 36 <span 37 key={word} 38 onClick={this.onWordSelected.bind(this)}> 39 {word} 40 </span>) 41 } 42 43 </div> 44 ); 45 } 46} 47export default Wordlist
import React from 'react' import './searchbar.css' class Searchbar extends React.Component { constructor(props){ super(props) } render() { return ( <div className="search"> {props.data.map(word => <span key={word}> {word} </span>)} <input type="text" id="searchword" /> <input type="submit" value="検索する" id="searchbutton" onClick={this.search} /> </div> ) } search() { var sword = document.getElementById('searchword').value window.open( 'https://www.google.co.jp/search?q=' + sword + ' inurl:/recipe/ site:cookpad.com' ) } } export default Searchbar
試したこと
const Searchbar = (props) =>など
{this.props.data.map(word =>
<span
key={word}>
{word}
</span>)}
補足情報(FW/ツールのバージョンなど)
Gatsbyというstatic site generatorを使っています。
Reactで動いておりimportしているためpropsなども使えると思うのですが。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/12/22 12:16
2018/12/22 13:09
2019/01/05 07:02