无法读取未定义 Javascript 的 属性 'split'

Cannot read property 'split' of undefined Javascript

我正在使用 Algolia instantsearch,我正在尝试从图像 url 中删除 public,以便它可以显示图像。 url 在 Algolia 索引属性上看起来像这样 public/photos/436Rga0UafNBJkBe6b5X0DJL49jcife687sqqgeI.jpeg,所以最终的 url 看起来像 http://127.0.0.1:8000/storage/public/photos/436Rga0UafNBJkBe6b5X0DJL49jcife687sqqgeI.jpeg。我想删除那个 public,这样它就可以是 http://127.0.0.1:8000/storage/photos/436Rga0UafNBJkBe6b5X0DJL49jcife687sqqgeI.jpeg。我尝试使用 split('public').pop(),但出现错误 Cannot read property 'split' of undefined Javascript。我该如何替换它?

search.addWidget(
    instantsearch.widgets.hits({
        container: '#hits',
        templates: {
            empty: 'No results',
            item: function(item) {
                return `
                <div>
                  <img src="${window.location.origin}/storage/${item.products_photos.split('public').pop()}" alt="img" class="algolia-thumb-result">
                    </div> 
                `;
            }
        }
    })
);

您可能需要确保 item.products_photos 存在,一个简单的解决方法是

<img src="${window.location.origin}/storage/${(item.products_photos || '').split('public').pop()}" alt="img" class="algolia-thumb-result">
                

您可以使用替换:

var test = "someAdress/public/someText.jpeg";
test = test.replace("public/","");
console.log(test);

所以试试这个:

<img src="${window.location.origin}/storage/${item.products_photos.replace("public/","");}" alt="img" class="algolia-thumb-result">