Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.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
Reactjs 返回一条搜索消息,在react hooks中显示零个搜索结果_Reactjs_React Hooks - Fatal编程技术网

Reactjs 返回一条搜索消息,在react hooks中显示零个搜索结果

Reactjs 返回一条搜索消息,在react hooks中显示零个搜索结果,reactjs,react-hooks,Reactjs,React Hooks,如果React hooks中的搜索返回了零结果,我想在页面中显示一条文本消息“没有可用于搜索条件的数据!”?我尝试了一个条件,但不确定在哪里添加 if(results.length == 0) { return ( <div>No data available for the search criteria !</div> ) } const [searchTerm, setSearchTerm] = useState(""); const [se

如果React hooks中的搜索返回了
零结果
,我想在页面中显示一条文本消息“没有可用于搜索条件的数据!”?我尝试了一个条件,但不确定在哪里添加

if(results.length == 0) {
  return (
    <div>No data available for the search criteria !</div>
  )
}


const [searchTerm, setSearchTerm] = useState("");
  const [searchResults, setSearchResults] = useState([]);

  const handleChange = event => {
    setSearchTerm(event.target.value);
  };
  useEffect(() => {
    const results = playerList.filter(player =>
      player.name.toLowerCase().includes(searchTerm) || player.name.toUpperCase().includes(searchTerm) || player.position.toLowerCase().includes(searchTerm) 
      || player.position.toUpperCase().includes(searchTerm)
    );
    setSearchResults(results);
  }, [searchTerm]);
if(results.length==0){
返回(
没有可用于搜索条件的数据!
)
}
常量[searchTerm,setSearchTerm]=useState(“”);
const[searchResults,setSearchResults]=useState([]);
const handleChange=事件=>{
setSearchTerm(event.target.value);
};
useffect(()=>{
const results=playerList.filter(player=>
player.name.toLowerCase().includes(searchTerm)| | player.name.toUpperCase().includes(searchTerm)| | | player.position.toLowerCase().includes(searchTerm)
||player.position.toUpperCase()包括(searchTerm)
);
设置搜索结果(结果);
},[searchTerm]);
//

返回(
{
searchResults.map(播放器=>{
返回(
{player.name}
{玩家位置}
);
})
}
);

您只需使用
三元运算符
,如下所示:

{
    searchResults.length ?
    searchResults.map(player => {
        return (
            <div className="grid-item">
            <div>
                <img className="playerProfilePic_home_tile" key={player.image} src={player.image}></img>
            </div>
            <div className="playerProfile_grid_border">
                <h3 key={player.name}>{player.name}</h3>
                <span className="playerPosition_home_tile" key={player.position}>{player.position}</span>
            </div>
            </div>
        );
    }) :
    "No data available for the search criteria !" 
}

{
搜索结果。长度?
searchResults.map(播放器=>{
返回(
{player.name}
{玩家位置}
);
}) :
“没有可用于搜索条件的数据!”
}

您只需使用
三元运算符
,如下所示:

{
    searchResults.length ?
    searchResults.map(player => {
        return (
            <div className="grid-item">
            <div>
                <img className="playerProfilePic_home_tile" key={player.image} src={player.image}></img>
            </div>
            <div className="playerProfile_grid_border">
                <h3 key={player.name}>{player.name}</h3>
                <span className="playerPosition_home_tile" key={player.position}>{player.position}</span>
            </div>
            </div>
        );
    }) :
    "No data available for the search criteria !" 
}

{
搜索结果。长度?
searchResults.map(播放器=>{
返回(
{player.name}
{玩家位置}
);
}) :
“没有可用于搜索条件的数据!”
}

您可以根据搜索结果的长度使用三元运算符。 请检查以下代码:

return (
<div className="App">
      <label>
        <div className="playerSearch_Home">
          <div className="playerSearch_Icon">
            <img src="/images/search-image-player.jpg"></img>
          </div>
          <input type="text" className="playerSearch_Home_Input" placeholder="Search players..." value={searchTerm} onChange={handleChange} />
        </div>
      </label>
    <div className="playerList_home_page">
      <div className="grid-container">
        {
          **searchResults.length > 0 ?** 
          searchResults.map(player => {
            return (
              <div className="grid-item">
                <div>
                  <img className="playerProfilePic_home_tile" key={player.image} src={player.image}></img>
                </div>
                <div className="playerProfile_grid_border">
                  <h3 key={player.name}>{player.name}</h3>
                  <span className="playerPosition_home_tile" key={player.position}>{player.position}</span>
                </div>
              </div>
            );
          })
        **} : <p>Zero records found for the Search</p>**
      </div>
    </div>
</div>
返回(
{
**searchResults.length>0?**
searchResults.map(播放器=>{
返回(
{player.name}
{玩家位置}
);
})
**}:0条搜索记录

**

))

您可以根据搜索结果的长度使用三元运算符。 请检查以下代码:

return (
<div className="App">
      <label>
        <div className="playerSearch_Home">
          <div className="playerSearch_Icon">
            <img src="/images/search-image-player.jpg"></img>
          </div>
          <input type="text" className="playerSearch_Home_Input" placeholder="Search players..." value={searchTerm} onChange={handleChange} />
        </div>
      </label>
    <div className="playerList_home_page">
      <div className="grid-container">
        {
          **searchResults.length > 0 ?** 
          searchResults.map(player => {
            return (
              <div className="grid-item">
                <div>
                  <img className="playerProfilePic_home_tile" key={player.image} src={player.image}></img>
                </div>
                <div className="playerProfile_grid_border">
                  <h3 key={player.name}>{player.name}</h3>
                  <span className="playerPosition_home_tile" key={player.position}>{player.position}</span>
                </div>
              </div>
            );
          })
        **} : <p>Zero records found for the Search</p>**
      </div>
    </div>
</div>
返回(
{
**searchResults.length>0?**
searchResults.map(播放器=>{
返回(
{player.name}
{玩家位置}
);
})
**}:0条搜索记录

**

))

您需要根据搜索结果数组的长度进行条件渲染。如果数组中没有任何内容,那么它将显示一条消息


{!searchResults.length&(没有可用于搜索条件的数据!

)}
返回(
{!searchResults.length&(没有可用于搜索条件的数据!

)} { searchResults.map(播放器=>{ 返回( {player.name} {玩家位置} ); }) } );
您需要根据搜索结果数组的长度进行条件渲染。如果数组中没有任何内容,那么它将显示一条消息


{!searchResults.length&(没有可用于搜索条件的数据!

)}
返回(
{!searchResults.length&(没有可用于搜索条件的数据!

)} { searchResults.map(播放器=>{ 返回( {player.name} {玩家位置} ); }) } );