reactjs - 如何将部分逻辑转移到另一个文件

标签 reactjs

我展示了我的一小部分代码

function App({}) {
  const [list, setList] = useState([]);
  const [Indx, setIndx] = useState(0);

  useEffect(({durion}) => {

        setList(durion.map((value, index) => (<Durion
              key= {`${value}`}
              Length={`${index}`}
              Name= {`${value}`}
              ...
              onClick= {() => {
                setIndx(index);
              }}/>
            ))
        );

  }, []);

如何将一年中的这部分内容写入 ArrDurion.js 文件;

 (<Durion  key= {`${value}`}
              Length={`${index}`}
              Name= {`${value}`}
              ...
              onClick= {() => {
                setIndx(index);
              }}/>
            )

ArrDurion.js

const ArrDurion = (<Durion  key= {`${value}`}
                  Length={`${index}`}
                  Name= {`${value}`}
                  ...
                  onClick= {() => {
                    setIndx(index);
                  }}/>

)

然后导入到 App.js 文件。 但我收到错误 setIndx(index) 不存在,

您可以展示三种编写代码的方法。要将这部分代码写入ArrDurion.js 文件中,然后在App.js 中使用它。 如果您知道减少代码的其他方法可以显示您的选择。

最佳答案

setindx, value, index 作为 prop 传递并转换为无状态组件

ArrDurian.jsx

import Durian from './durianFile';
export const ArrDurion = ({index, value, onClickProp}) => {
    return (
          <Durion  
             key= {`${value}`}
             Length={`${index}`}
             Name= {`${value}`}
             onClick= {() => onClickProp(index)}
          />
        );
};

然后导入到另一个文件App.js并按如下方式使用

import { ArrDurion } from 'ArrDurion';
function App({}) {
 const [list, setList] = useState([]);
 const [Indx, setIndx] = useState(0);

  useEffect(({durion}) => {
    setList(durion.map((value, index) => 
          <ArrDurian onClickProp={setIndx} value={value} index={index} />
        )
    );
 }, []);

导入时请注意DefaultNamed 导入

关于reactjs - 如何将部分逻辑转移到另一个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56880650/

相关文章:

reactjs - 测试 --coverage 抛出 "Nothing was returned from render."错误

javascript - 为什么我无法在 `` `getStaticProps ``` 中获取查询参数?

javascript - 如何在 Webpack 4 中转译 JSX

reactjs - 将类名传递给 Material ui 日期选择器对话框

javascript - 我的 React 应用程序中未显示工具提示

node.js - 在create-react-app中使用Socket.io-client的WebSockets代理

javascript - React 组件不会使用相同的 props 重新渲染,但子状态会发生变化

javascript - 使用动态文本和输入进行字符串翻译

javascript - 如何使用 babel 和 webpack 设置一个 react/node 项目?

reactjs - 将接口(interface)传递给 React 类组件时,意外 token "<"预期为 "{"