为了账号安全,请及时绑定邮箱和手机立即绑定

无法在反应功能组件中的道具上设置状态

无法在反应功能组件中的道具上设置状态

饮歌长啸 2022-07-08 10:48:36
我一直无法在我不断得到的道具上设置状态TypeError:props.setState 不是函数我正在尝试实现搜索功能const HeroComp = (props) => {        let  handleSearchSubmit = (e) => {          props.setState({searchValue: e.target.value});      }      return     <div className='heroComp' >                <form action="" >                   <input type="text" placeholder='search cartigory'  onChange={handleSearchSubmit}   />                 </form>            </div>}export default HeroComp;当我 console.log(props) 我得到{searchValue: ""}searchValue: ""__proto__: Object这是父组件import images from '../data/images'; //the file from which i'm importing images dataclass HomePage extends React.Component{    constructor(){        super();        this.state = {            images,            searchValue: ''            }}    render(){        const {images , searchValue} = this.state;        const filteredImage = images.filter(image => image.cartigory.toLowerCase().includes(searchValue));            return(                <div >                    <HeroComp searchValue={ searchValue }  />                    <GalleryComp filteredImage={filteredImage} />                </div>            )        }}export default HomePage;我知道这应该很容易,但我只是看不到解决方案。
查看完整描述

2 回答

?
慕尼黑的夜晚无繁华

TA贡献1864条经验 获得超6个赞

这个怎么样?


  useEffect(() => {

    // set the current state

    setSearchValue(props.searchValue)

  }, [props]);


查看完整回答
反对 回复 2022-07-08
?
MYYA

TA贡献1868条经验 获得超4个赞

功能组件没有状态,但你可以使用 reactHooks:


import React, { useState } from 'react';


const HeroComp = (props) => {

      let [searchValue, setSearchValue] = useState();


      let  handleSearchSubmit = (e) => {

          setSearchValue(e.target.value);

      }

      return     <div className='heroComp' >

                <form action="" >


                <input type="text" placeholder='search cartigory'  onChange={handleSearchSubmit}   />

                 </form>

            </div>

}



export default HeroComp;


查看完整回答
反对 回复 2022-07-08
  • 2 回答
  • 0 关注
  • 85 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号