/ / ReactJS: запустити функцію для створення елементів з різних сторінок без взаємодії - javascript, responsejs, web

ReactJS: запускати функцію, щоб ініціювати елементи з різних сторінок без взаємодії - javascript, reakjs, web

Я зробив цю річ, яка очищає веб-сайт іпублікує це по-різному з реагувати. Мені потрібна допомога з цим. Діви повинні плавати самостійно після нересту, а згодом вони повинні отримувати нові публікації з веб-сайту. Однак зараз це просто спливає перші 10 публікацій, доступних на веб-сайті. Зараз у мене є кнопка, яка працює на основі onClick, але я хочу, щоб дописи просто виходили самі по собі, а не повторювались.

render() {
return (
<div>

{/*I have a component elsewhere*/}
{this.state.posts.map((post) => {
return (<Post post={post} key={post.id}></Post>);
})}

<div className="load-more">
<a className="btn btn-primary btn-block" onClick=this.loadMore.bind(this)>Load more</a>
</div>
</div>
);
}

Це моя функція loadMore. Однак я не хочу, щоб на ній клацали. Я просто хочу, щоб він запускався. Він знаходиться в тому ж компоненті, що і вище.

loadMore(){
let posts = this.state.posts;
let lastPost = posts[posts.length - 1];

$.ajax({
url: this.paginationURL(),
data: { page: lastPost.id },
type: "GET",
dataType: "json",
success: (response) => {
this.setState({
posts: this.state.posts.concat(response.posts)
})
}
})
}

Дякуємо за допомогу всім!Якщо вам потрібна додаткова інформація, сміливо розміщуйте її в розділі коментарів. Якщо у вас є хоч якась незначна ідея, не соромтеся просто залишити посилання, щоб я прочитав, щоб я міг вказати в правильному напрямку. Всі види допомоги оцінені!

Відповіді:

1 для відповіді № 1

Якщо я правильно зрозумів ваше запитання, вам доведеться ввести ваш механізм вишкрібання в опитування / інтервал, щоб оновити DOM, коли ви скасовуєте нові дані.

Щось на зразок:

// Lets say this is where you need to put the scraped posts
const wherePostsShouldBe = <div id="posts"></div>;

// Auto-run the scraping every 3 seconds.
setInterval(scrapePosts(), 3000)

// Do the scraping
function scrapePosts() {

$.ajax({

url: "http://where-to-scrape-things.com",
type: "GET",
dataType: "json",

success: (response) => {
// So we scraped some data. Now update the element with these.
// This actually re-renders everything again including old and potentially new data.
// But its ok to stay primitive for now. Including simply displaying the entire data we got without serializing.
ReactDOM.render(
response.posts,
document.getElementById("posts")
);
}

});

}

Хейвен "не перевіряв це. Але це повинно дати вам деяке уявлення.