Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将默认值设置为道具_Javascript_Reactjs_React Props - Fatal编程技术网

Javascript 如何将默认值设置为道具

Javascript 如何将默认值设置为道具,javascript,reactjs,react-props,Javascript,Reactjs,React Props,下面的代码获取URL数据并检索所有电影列表,持续时间以秒为单位 但我只想列出持续时间超过5000秒的电影 *该组件应具有适当的持续时间,并且仅应列出持续时间超过该值的胶片;此道具的默认值应为5000 你能澄清一下如何解决这个问题吗 import React, { useState, useEffect } from "react"; export default function App() { const [films, setFilms] = useStat

下面的代码获取URL数据并检索所有电影列表,持续时间以秒为单位 但我只想列出持续时间超过5000秒的电影 *该组件应具有适当的持续时间,并且仅应列出持续时间超过该值的胶片;此道具的默认值应为5000

你能澄清一下如何解决这个问题吗

    import React, { useState, useEffect } from "react";

export default function App() {
  const [films, setFilms] = useState([]);
  
  useEffect(() => {
    const listOfFilms = async () => {
      const response = await fetch(
        "https://api.flixpremiere.com/v1/films/filter/now_showing?limit=10"
      );
      console.log("here", response.data);
      const jsonresponse = await response.json();
      console.log("here11", jsonresponse.films);
      setFilms(jsonresponse.films);
    };
    listOfFilms();
  }, []);
  return (
    <div className="App">
      <h1>Film Title</h1>
      {console.log("films", films.slug, films.films)}

      {films.map((film, index) => (
          <ul>
            <li key={film.title}>
           {film.title} {`(${film.duration_seconds})`} </li>
        </ul>
      ))}
    </div>
  );
}
import React,{useState,useffect}来自“React”;
导出默认函数App(){
const[films,setFilms]=useState([]);
useffect(()=>{
const listOfFilms=async()=>{
const response=等待获取(
"https://api.flixpremiere.com/v1/films/filter/now_showing?limit=10"
);
console.log(“此处”,response.data);
const jsonresponse=await response.json();
console.log(“here11”,jsonresponse.films);
setFilms(jsonresponse.films);
};
listOfFilms();
}, []);
返回(
片名
{console.log(“films”,films.slug,films.films)}
{films.map((film,index)=>(
  • {film.title}{`(${film.duration_seconds})`}
))} ); }
要设置组件的默认道具,可以使用defaultProps属性

class Tooltip extends React.Component {
// ...
}

Tooltip.defaultProps = {
delay: 100,
}

我将在编写时回答这个问题,即“如何将默认值设置为道具”


如果只想根据条件显示某些项目,请使用函数。

唯一的方法是在函数组件中使用默认参数

const Component=({iNeedDefaultValue=“foo”})=>{…}

其余的都被弃用了(“反应之父”)

因为函数上的defaultProps最终会被弃用


请参阅:

您可以使用
array.filter
,将阵列筛选为仅包含持续时间超过5000的影片。filter(film=>film.duration\u seconds>5000)这是否回答了您的问题?更多关于but类组件的详细信息,虽然仍然受支持,但不再需要,因此,解构可以轻松取胜。只有
const-Component=({property=5000})=>{…}
被接受,其余部分被弃用(Dan Abramov words)。@JaLe你说得对。答案调整了。请取消你的否决票。
const Component = ({ property = 5000 }) => { ... }