函数什么时候写在组件内部,什么时候写在页面里

来源:6-9 创建页面组合展示型组件

给生活一个大大的傻笑

2021-03-03

老师,不清楚什么时候函数要写在组件内部,什么时候写在全局页面里面

  1. 我想想了是如果依赖全局的state,需要写在全局页面中,不知道对不对?
  2. 假如我现在有个弹窗组件, 又有多个按钮功能组件(关机、删除),这两个按钮点击都需要弹窗,所以需要加一个全局的弹窗状态state, 然后通过全局页面向按钮传函数。
  3. 不知道这样对不对, 或者老师是怎么处理的,方便贴个简短代码吗
  1. <DeleteBtn handleClick={ ()=> { this.setState({ modal: true }) } } />
    <ShutdownBtn handleClick={ ()=> { this.setState({ modal: true }) } } />
写回答

1回答

张轩

2021-03-05

同学你好 

请记住自上而下的数据流就好,弹窗组件有多种解法,这里我们说一个最简单的做法。在父组件中管理弹窗的状态。你的思路是大体中缺的,以下是伪代码 请自己修改一下

// 父组件添加一个状态
state: { isOpen: false }
// 点击按钮的时候显示弹窗
<DeleteBtn handleClick={openModal}>
openModal: this.setState({isOpen: true})
// 在界面上显示弹窗
{ isOpen && <Modal />}
// 在弹窗组件(注意这里是子组件)中点击某个关闭按钮发送事件
closeModal: this.props.onClose()
// 在父组件中添加这个响应,并且处理
<Modal onClose={() => {this.setState({isOpen: false})}}>
1
1
给生活一个大大的傻笑
非常感谢!
2021-03-09
共1条回复

React16组件化+测试+全流程 实战在线账本项目

轻松上手,从设计图到上线,精通组件化思维和组件测试

713 学习 · 177 问题

查看课程