在React中将道具从一个文件传递到另一个文件

时间:2020-10-23 05:58:24

标签: javascript reactjs

在下面的代码中,我想将Person.js的名称作为prop传递给App.js,但我不知道该怎么做,如果可以的话请解释一下我该怎么做。

App.js

import { useState,useEffect } from 'react';
// import Person from './Person'

function App(props) {
  const [greet, setGreeet] = useState("");

  return (
    <div className="App">
      <h1> Good {greet} </h1>
    </div>
  );
}

export default App;

Person.js

import React from 'react';
import App from './App'

export default function Person (){
    const name="Jenifer"
    return(
        <div></div>
    );
}

3 个答案:

答案 0 :(得分:0)

将名称作为属性从person.js(父组件)传递到App.js(子组件)

Person.js

import React from 'react';
import App from './App'

export default function Person (){
    const name="Jenifer"
    return(
        <div>
        <App name={name}/>
        </div>
    );
}

App.js


import { useState,useEffect } from 'react';
// import Person from './Person'


function App(props) {
const [greet, setGreeet] = useState("");



  return (
    <div className="App">
      <h1> Good Morning {props.name} </h1> // Good Morning Jenifer
    </div>
  );
}

export default App;

查看此博客帖子Passing props between components

答案 1 :(得分:0)

我认为您正在询问如何将数据从孩子传递给父母。

您必须将方法从App传递给Person。

然后从Person组件中调用方法。

也请参阅文档

https://reactjs.org/docs/lifting-state-up.html

void build(int level=0,int l=0, int r=size)
{
  int m = (l+r)/2;
  
  table[level][m] = A[m]%P;
  for(int i=m-1;i>=l;i--)
    table[level][i] = (long long)table[level][i+1] * A[i] % P;
    
  if(m+1 < r) {
    table[level][m+1] = A[m+1]%P;
    for(int i=m+2;i<r;i++)
      table[level][i] = (long long)table[level][i-1] * A[i] % P;
  }
  if(l + 1 != r)        // r - l > 1
  {
    build(level+1, l, m);
    build(level+1, m, r);
  }
}

答案 2 :(得分:0)

最后我找到了原因,这是因为我试图将数据从子类传递给父类。