发布
社区首页 >问答首页 >Reactjs,类组件到钩子

Reactjs,类组件到钩子
EN

Stack Overflow用户
提问于 2020-04-11 02:48:03
回答 1查看 36关注 0票数 0

我仍然是ReactJs的初学者。实际上,我想重写我的类组件以挂钩组件,但我的一部分代码有问题。有没有人可以帮我重写这个组件来钩子?

这是我的代码:

代码语言:javascript
代码运行次数:0
复制
class App extends Component {
  state = {
    selected: {},
    data: data,
    filtered: data
  };

  handleChange = data => {
    if (data == null) {
      this.setState({
        filtered: this.state.data
      });
    } else {
      this.setState({
        selected: data,
        filtered: this.state.data.filter(d => d.client_id === data.id)
      });
    }
  };

  returnClientNameFromID = id => options.find(o => o.id === id).name;

  render() {
    const {
      state: { selected, data, filtered },
      handleChange
    } = this;


    return ( <div>
    ...
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-11 02:53:38

这是你可以做的。使用useState,你总是必须自己合并对象setState((prevState) => {...prevState, ... })

代码语言:javascript
代码运行次数:0
复制
const App = () => {
  const [state, setState] = useState({
    selected: {},
    data: data,
    filtered: data
  })

  const handleChange = data => {
    if (data == null) {
      setState((prevState) => {
        ...prevState,
        filtered: this.state.data
      });
    } else {
      setState((prevState) => {
        ...prevState,
        selected: data,
        filtered: prevState.data.filter(d => d.client_id === data.id)
      });
    }
  };

  const returnClientNameFromID = id => options.find(o => o.id === id).name;

  const { selected, data, filtered } = state

  return() (
    <div> ... </div>
  )
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61146740

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档