Post Categories

Engineering

Mengenal Redux-Saga Dalam React Native

BY

Luluk Oktaviani

|

Mengenai seputar pemrograman menggunakan React Native, tidak mungkin tanpa membahas third-parties library yang mendukung dalam pengembangan aplikasi yang menggunakan React atau pun React Native. Dalam artikel kali ini kita akan membahas salah satu kerabat dari Redux yaitu Redux-Saga.

Apakah itu Redux-Saga? Lalu apa hubungannya dengan Redux dan pengembangan aplikasi di React Native? Kita mulai dari pembahasan paling awal dahulu, yaitu mengenali Redux-Saga dan kegunaannya.

Redux-Saga adalah…

Redux-Saga adalah library yang bertujuan untuk membuat side effects dari aplikasi seperti asynchronus data fetching atau mengakses cache dari browser menjadi lebih mudah untuk diatur, lebih efisien untuk mengeksekusi, dan terutama mempermudah dalam melakukan test maupun handling failures.

Redux-Saga memisahkan thread dalam aplikasi yang bertanggung jawab khusus untuk bagian side effects. Jelasnya, Redux-Saga adalah middleware, yang dalam ekosistem redux berarti proses thread yang dapat dimulai, pause, dan dibatalkan dengan melalui redux actions. Redux-Saga juga memiliki akses penuh terhadap state dan juga dapat melakukan dispatch dalam redux actions juga.

Redux-Saga secara umum menggunakan fitur Generators dari ES6 yang membuat arus asynchronous dari proses aplikasi bisa lebih mudah untuk dilakukan readwrite, dan juga melakukan test atau logging, dengan hal tersebut proses asynchronous seakan-akan seperti proses synchronous.

Redux Cycle jika menggunakan Saga, gambar: medium.com/@psak.works

Contoh Penggunaan

Mari kita anggap akan melakukan proses fetching sebuah data dari remote server ketika melakukan button click.

class ButtonComponent extends React.Component {
  ...
  ButtonClicked() {
    // Akan mengirim payload berisi data dari userId
    const { userId, dispatch } = this.props
    dispatch({type: 'USER_FETCH_REQUESTED', payload: {userId}})
  }
  ...
}

Pada code di atas, ButtonComponent mengirimkan data berupa object kepada Store dari Redux. Nah, lalu kita akan membuat file sagas.js yang berisi algoritma untuk menerima semua proses actions yang membawa type USER_FETCH_REQUESTED, untuk nantinya file sagas.js akan melakukan API Call untuk mengambil data. Seperti di code berikut.

sagas.js

import { call, put, takeEvery, takeLatest } from 'redux-saga/effects'
import Api from './api'

// worker Saga: akan berjalan ketika ada action USER_FETCH_REQUESTED
function* fetchUser(action) {
   try {
      const user = yield call(Api.fetchUser, action.payload.userId);
      yield put({type: "USER_FETCH_SUCCEEDED", user: user});
   } catch (e) {
      yield put({type: "USER_FETCH_FAILED", message: e.message});
   }
}

/*
  Memulai fetchUser setiap kali ada action `USER_FETCH_REQUESTED`.
  takeEvery() berarti dapat melakukan fetching data secara bersamaan.
*/
function* mySaga() {
  yield takeEvery("USER_FETCH_REQUESTED", fetchUser);
}

/*
  Untuk takeLatest().

  Tidak akan dapat melakukan fetching data secara bersamaan. Jadi, jika "USER_FETCH_REQUESTED" menerima dispatch ketika proses fetching sedang pending, maka proses pending akan dibatalkan dan proses terakhir kalinya lah yang hanya berjalan.
*/
function* mySaga() {
  yield takeLatest("USER_FETCH_REQUESTED", fetchUser);
}

export default mySaga;

Lalu, untuk menjalankan Saga, kita harus mengkoneksikan kepada Redux Store menggunakan createSagaMiddleware dari redux-saga. Seperti berikut.

store.js

import { createStore, applyMiddleware } from 'redux'
import createSagaMiddleware from 'redux-saga'

import reducer from './reducers'
import mySaga from './sagas'

// membuat instansiasi the saga middleware
const sagaMiddleware = createSagaMiddleware()
// masukkan ke Redux Store
const store = createStore(
  reducer,
  applyMiddleware(sagaMiddleware)
)

// lalu jalankan saga middleware-nya
sagaMiddleware.run(mySaga)

Seperti itulah contoh sederhana dalam penggunaan Redux-Saga, jadi jika kita hanya menggunakan Redux, kita akan mengalami kesulitan dalam menangani dispatch dan  action yang berhubungan dengan proses Asynchronous seperti salah satunya API Calling, maka peran Redux-Saga ini akan membuat anda dapat mengatur atau pun tracing setiap action ataupun dispatch di dalam aplikasi.

You might’ve used redux-thunk before to handle your data fetching. Contrary to redux thunk, you don’t end up in callback hell, you can test your asynchronous flows easily and your actions stay pure.

Referensi:

  1. https://redux-saga.js.org/
  2. https://medium.com/@psak.works/redux-saga-react-native-2b84463d7afe

Hubungkan dengan kami

Ikuti refactory

Artikel Populer


( ! ) Deprecated: jquery-slick is <strong>deprecated</strong> since version 2.7.0! Use Swiper instead. in /apps/refactory-portal/wp-includes/functions.php on line 5049
Call Stack
#TimeMemoryFunctionLocation
10.0001404144{main}( ).../index.php:0
20.0002404416require( '/apps/refactory-portal/wp-blog-header.php ).../index.php:17
30.349115046872require_once( '/apps/refactory-portal/wp-includes/template-loader.php ).../wp-blog-header.php:19
40.361715129912include( '/apps/refactory-portal/wp-content/plugins/elementor/modules/page-templates/templates/header-footer.php ).../template-loader.php:106
50.477220409664Elementor\Modules\PageTemplates\Module->print_content( ).../header-footer.php:19
60.477220410040call_user_func:{/apps/refactory-portal/wp-content/plugins/elementor/modules/page-templates/module.php:207}( $function_name = [0 => class Elementor\Modules\PageTemplates\Module { protected $print_callback = ...; private ${Elementor\Core\Base\Module}reflection = NULL; private ${Elementor\Core\Base\Module}components = [...]; private ${Elementor\Core\Base\Base_Object}settings = NULL }, 1 => 'print_callback'] ).../module.php:207
70.477220410120Elementor\Modules\PageTemplates\Module->print_callback( ).../module.php:207
80.477620410872the_content( $more_link_text = ???, $strip_teaser = ??? ).../module.php:190
90.477920410896apply_filters( $tag = 'the_content', $value = '<h2>Post Categories</h2>\t\t\n\t\t\t<ul id="main-menu"><lidata-vertical-menu=750px><a href="https://refactory.id/blog/">Blog</a></li>\n<lidata-vertical-menu=750px><a href="https://refactory.id/blog-engineering/">Engineering</a></li>\n<lidata-vertical-menu=750px><a href="https://refactory.id/blog-profile/">Profile</a></li>\n<lidata-vertical-menu=750px><a href="https://refactory.id/blog-tutorial/">Tutorial</a></li>\n<lidata-vertical-menu=750px><a href="https://refactory.id/blog-tips-trick/">Tips &#038; Trick<' ).../post-template.php:253
100.477920411296WP_Hook->apply_filters( $value = '<h2>Post Categories</h2>\t\t\n\t\t\t<ul id="main-menu"><lidata-vertical-menu=750px><a href="https://refactory.id/blog/">Blog</a></li>\n<lidata-vertical-menu=750px><a href="https://refactory.id/blog-engineering/">Engineering</a></li>\n<lidata-vertical-menu=750px><a href="https://refactory.id/blog-profile/">Profile</a></li>\n<lidata-vertical-menu=750px><a href="https://refactory.id/blog-tutorial/">Tutorial</a></li>\n<lidata-vertical-menu=750px><a href="https://refactory.id/blog-tips-trick/">Tips &#038; Trick<', $args = [0 => '<h2>Post Categories</h2>\t\t\n\t\t\t<ul id="main-menu"><lidata-vertical-menu=750px><a href="https://refactory.id/blog/">Blog</a></li>\n<lidata-vertical-menu=750px><a href="https://refactory.id/blog-engineering/">Engineering</a></li>\n<lidata-vertical-menu=750px><a href="https://refactory.id/blog-profile/">Profile</a></li>\n<lidata-vertical-menu=750px><a href="https://refactory.id/blog-tutorial/">Tutorial</a></li>\n<lidata-vertical-menu=750px><a href="https://refactory.id/blog-tips-trick/">Tips &#038; Trick<'] ).../plugin.php:212
110.478720414296Elementor\Frontend->apply_builder_in_content( $content = '<h2>Post Categories</h2>\t\t\n\t\t\t<ul id="main-menu"><lidata-vertical-menu=750px><a href="https://refactory.id/blog/">Blog</a></li>\n<lidata-vertical-menu=750px><a href="https://refactory.id/blog-engineering/">Engineering</a></li>\n<lidata-vertical-menu=750px><a href="https://refactory.id/blog-profile/">Profile</a></li>\n<lidata-vertical-menu=750px><a href="https://refactory.id/blog-tutorial/">Tutorial</a></li>\n<lidata-vertical-menu=750px><a href="https://refactory.id/blog-tips-trick/">Tips &#038; Trick<' ).../class-wp-hook.php:287
120.478720414672Elementor\Frontend->get_builder_content( $post_id = 5156, $with_css = ??? ).../frontend.php:898
130.479420683616Elementor\Core\DocumentTypes\Post->print_elements_with_wrapper( $elements_data = [0 => ['id' => '7c956593', 'elType' => 'section', 'settings' => [...], 'elements' => [...], 'isInner' => FALSE], 1 => ['id' => '269563e1', 'elType' => 'section', 'settings' => [...], 'elements' => [...], 'isInner' => FALSE], 2 => ['id' => '474357b5', 'elType' => 'section', 'settings' => [...], 'elements' => [...], 'isInner' => FALSE], 3 => ['id' => '50e7ce89', 'elType' => 'section', 'settings' => [...], 'elements' => [...], 'isInner' => FALSE], 4 => ['id' => '4178d0aa', 'elType' => 'section', 'settings' => [...], 'elements' => [...], 'isInner' => FALSE]] ).../frontend.php:984
140.486720849912Elementor\Core\DocumentTypes\Post->print_elements( $elements_data = [0 => ['id' => '7c956593', 'elType' => 'section', 'settings' => [...], 'elements' => [...], 'isInner' => FALSE], 1 => ['id' => '269563e1', 'elType' => 'section', 'settings' => [...], 'elements' => [...], 'isInner' => FALSE], 2 => ['id' => '474357b5', 'elType' => 'section', 'settings' => [...], 'elements' => [...], 'isInner' => FALSE], 3 => ['id' => '50e7ce89', 'elType' => 'section', 'settings' => [...], 'elements' => [...], 'isInner' => FALSE], 4 => ['id' => '4178d0aa', 'elType' => 'section', 'settings' => [...], 'elements' => [...], 'isInner' => FALSE]] ).../document.php:933
150.563922820392Elementor\Element_Section->print_element( ).../document.php:1296
160.568422930248Elementor\Element_Section->print_content( ).../element-base.php:650
170.652624907568Elementor\Element_Column->print_element( ).../element-base.php:907
180.655925009152Elementor\Element_Column->print_content( ).../element-base.php:650
190.708026956424Elementor\Element_Section->print_element( ).../element-base.php:907
200.712127066280Elementor\Element_Section->print_content( ).../element-base.php:650
210.712127067736Elementor\Element_Column->print_element( ).../element-base.php:907
220.715227169320Elementor\Element_Column->print_content( ).../element-base.php:650
230.720927297152OneElements\Includes\Widgets\PostGrid\Widget_OneElements_PostGrid->print_element( ).../element-base.php:907
241.786832185616OneElements\Includes\Widgets\PostGrid\Widget_OneElements_PostGrid->enqueue_scripts( ).../element-base.php:682
251.786832185992Elementor\Utils::handle_deprecation( $item = 'jquery-slick', $version = '2.7.0', $replacement = 'Swiper' ).../element-base.php:152
261.786832186856_deprecated_file( $file = 'jquery-slick', $version = '2.7.0', $replacement = 'Swiper', $message = ??? ).../utils.php:487
271.786832187928trigger_error( $message = 'jquery-slick is <strong>deprecated</strong> since version 2.7.0! Use Swiper instead.', $error_type = 16384 ).../functions.php:5049

Case Studies


( ! ) Deprecated: jquery-slick is <strong>deprecated</strong> since version 2.7.0! Use Swiper instead. in /apps/refactory-portal/wp-includes/functions.php on line 5049
Call Stack
#TimeMemoryFunctionLocation
10.0001404144{main}( ).../index.php:0
20.0002404416require( '/apps/refactory-portal/wp-blog-header.php ).../index.php:17
30.349115046872require_once( '/apps/refactory-portal/wp-includes/template-loader.php ).../wp-blog-header.php:19
40.361715129912include( '/apps/refactory-portal/wp-content/plugins/elementor/modules/page-templates/templates/header-footer.php ).../template-loader.php:106
50.477220409664Elementor\Modules\PageTemplates\Module->print_content( ).../header-footer.php:19
60.477220410040call_user_func:{/apps/refactory-portal/wp-content/plugins/elementor/modules/page-templates/module.php:207}( $function_name = [0 => class Elementor\Modules\PageTemplates\Module { protected $print_callback = ...; private ${Elementor\Core\Base\Module}reflection = NULL; private ${Elementor\Core\Base\Module}components = [...]; private ${Elementor\Core\Base\Base_Object}settings = NULL }, 1 => 'print_callback'] ).../module.php:207
70.477220410120Elementor\Modules\PageTemplates\Module->print_callback( ).../module.php:207
80.477620410872the_content( $more_link_text = ???, $strip_teaser = ??? ).../module.php:190
90.477920410896apply_filters( $tag = 'the_content', $value = '<h2>Post Categories</h2>\t\t\n\t\t\t<ul id="main-menu"><lidata-vertical-menu=750px><a href="https://refactory.id/blog/">Blog</a></li>\n<lidata-vertical-menu=750px><a href="https://refactory.id/blog-engineering/">Engineering</a></li>\n<lidata-vertical-menu=750px><a href="https://refactory.id/blog-profile/">Profile</a></li>\n<lidata-vertical-menu=750px><a href="https://refactory.id/blog-tutorial/">Tutorial</a></li>\n<lidata-vertical-menu=750px><a href="https://refactory.id/blog-tips-trick/">Tips &#038; Trick<' ).../post-template.php:253
100.477920411296WP_Hook->apply_filters( $value = '<h2>Post Categories</h2>\t\t\n\t\t\t<ul id="main-menu"><lidata-vertical-menu=750px><a href="https://refactory.id/blog/">Blog</a></li>\n<lidata-vertical-menu=750px><a href="https://refactory.id/blog-engineering/">Engineering</a></li>\n<lidata-vertical-menu=750px><a href="https://refactory.id/blog-profile/">Profile</a></li>\n<lidata-vertical-menu=750px><a href="https://refactory.id/blog-tutorial/">Tutorial</a></li>\n<lidata-vertical-menu=750px><a href="https://refactory.id/blog-tips-trick/">Tips &#038; Trick<', $args = [0 => '<h2>Post Categories</h2>\t\t\n\t\t\t<ul id="main-menu"><lidata-vertical-menu=750px><a href="https://refactory.id/blog/">Blog</a></li>\n<lidata-vertical-menu=750px><a href="https://refactory.id/blog-engineering/">Engineering</a></li>\n<lidata-vertical-menu=750px><a href="https://refactory.id/blog-profile/">Profile</a></li>\n<lidata-vertical-menu=750px><a href="https://refactory.id/blog-tutorial/">Tutorial</a></li>\n<lidata-vertical-menu=750px><a href="https://refactory.id/blog-tips-trick/">Tips &#038; Trick<'] ).../plugin.php:212
110.478720414296Elementor\Frontend->apply_builder_in_content( $content = '<h2>Post Categories</h2>\t\t\n\t\t\t<ul id="main-menu"><lidata-vertical-menu=750px><a href="https://refactory.id/blog/">Blog</a></li>\n<lidata-vertical-menu=750px><a href="https://refactory.id/blog-engineering/">Engineering</a></li>\n<lidata-vertical-menu=750px><a href="https://refactory.id/blog-profile/">Profile</a></li>\n<lidata-vertical-menu=750px><a href="https://refactory.id/blog-tutorial/">Tutorial</a></li>\n<lidata-vertical-menu=750px><a href="https://refactory.id/blog-tips-trick/">Tips &#038; Trick<' ).../class-wp-hook.php:287
120.478720414672Elementor\Frontend->get_builder_content( $post_id = 5156, $with_css = ??? ).../frontend.php:898
130.479420683616Elementor\Core\DocumentTypes\Post->print_elements_with_wrapper( $elements_data = [0 => ['id' => '7c956593', 'elType' => 'section', 'settings' => [...], 'elements' => [...], 'isInner' => FALSE], 1 => ['id' => '269563e1', 'elType' => 'section', 'settings' => [...], 'elements' => [...], 'isInner' => FALSE], 2 => ['id' => '474357b5', 'elType' => 'section', 'settings' => [...], 'elements' => [...], 'isInner' => FALSE], 3 => ['id' => '50e7ce89', 'elType' => 'section', 'settings' => [...], 'elements' => [...], 'isInner' => FALSE], 4 => ['id' => '4178d0aa', 'elType' => 'section', 'settings' => [...], 'elements' => [...], 'isInner' => FALSE]] ).../frontend.php:984
140.486720849912Elementor\Core\DocumentTypes\Post->print_elements( $elements_data = [0 => ['id' => '7c956593', 'elType' => 'section', 'settings' => [...], 'elements' => [...], 'isInner' => FALSE], 1 => ['id' => '269563e1', 'elType' => 'section', 'settings' => [...], 'elements' => [...], 'isInner' => FALSE], 2 => ['id' => '474357b5', 'elType' => 'section', 'settings' => [...], 'elements' => [...], 'isInner' => FALSE], 3 => ['id' => '50e7ce89', 'elType' => 'section', 'settings' => [...], 'elements' => [...], 'isInner' => FALSE], 4 => ['id' => '4178d0aa', 'elType' => 'section', 'settings' => [...], 'elements' => [...], 'isInner' => FALSE]] ).../document.php:933
150.563922820392Elementor\Element_Section->print_element( ).../document.php:1296
160.568422930248Elementor\Element_Section->print_content( ).../element-base.php:650
170.652624907568Elementor\Element_Column->print_element( ).../element-base.php:907
180.655925009152Elementor\Element_Column->print_content( ).../element-base.php:650
191.800432522624Elementor\Element_Section->print_element( ).../element-base.php:907
201.804132632480Elementor\Element_Section->print_content( ).../element-base.php:650
211.804132633936Elementor\Element_Column->print_element( ).../element-base.php:907
221.807232735520Elementor\Element_Column->print_content( ).../element-base.php:650
231.812532863840LivemeshAddons\Widgets\LAE_Posts_Carousel_Widget->print_element( ).../element-base.php:907
241.864533869424LivemeshAddons\Widgets\LAE_Posts_Carousel_Widget->enqueue_scripts( ).../element-base.php:682
251.864533869424Elementor\Utils::handle_deprecation( $item = 'jquery-slick', $version = '2.7.0', $replacement = 'Swiper' ).../element-base.php:152
261.864533870288_deprecated_file( $file = 'jquery-slick', $version = '2.7.0', $replacement = 'Swiper', $message = ??? ).../utils.php:487
271.864633870608trigger_error( $message = 'jquery-slick is <strong>deprecated</strong> since version 2.7.0! Use Swiper instead.', $error_type = 16384 ).../functions.php:5049
The current query has no posts. Please make sure you have published items matching your query.

( ! ) Deprecated: jquery-slick is <strong>deprecated</strong> since version 2.7.0! Use Swiper instead. in /apps/refactory-portal/wp-includes/functions.php on line 5049
Call Stack
#TimeMemoryFunctionLocation
10.0001404144{main}( ).../index.php:0
20.0002404416require( '/apps/refactory-portal/wp-blog-header.php ).../index.php:17
30.349115046872require_once( '/apps/refactory-portal/wp-includes/template-loader.php ).../wp-blog-header.php:19
40.361715129912include( '/apps/refactory-portal/wp-content/plugins/elementor/modules/page-templates/templates/header-footer.php ).../template-loader.php:106
50.477220409664Elementor\Modules\PageTemplates\Module->print_content( ).../header-footer.php:19
60.477220410040call_user_func:{/apps/refactory-portal/wp-content/plugins/elementor/modules/page-templates/module.php:207}( $function_name = [0 => class Elementor\Modules\PageTemplates\Module { protected $print_callback = ...; private ${Elementor\Core\Base\Module}reflection = NULL; private ${Elementor\Core\Base\Module}components = [...]; private ${Elementor\Core\Base\Base_Object}settings = NULL }, 1 => 'print_callback'] ).../module.php:207
70.477220410120Elementor\Modules\PageTemplates\Module->print_callback( ).../module.php:207
80.477620410872the_content( $more_link_text = ???, $strip_teaser = ??? ).../module.php:190
90.477920410896apply_filters( $tag = 'the_content', $value = '<h2>Post Categories</h2>\t\t\n\t\t\t<ul id="main-menu"><lidata-vertical-menu=750px><a href="https://refactory.id/blog/">Blog</a></li>\n<lidata-vertical-menu=750px><a href="https://refactory.id/blog-engineering/">Engineering</a></li>\n<lidata-vertical-menu=750px><a href="https://refactory.id/blog-profile/">Profile</a></li>\n<lidata-vertical-menu=750px><a href="https://refactory.id/blog-tutorial/">Tutorial</a></li>\n<lidata-vertical-menu=750px><a href="https://refactory.id/blog-tips-trick/">Tips &#038; Trick<' ).../post-template.php:253
100.477920411296WP_Hook->apply_filters( $value = '<h2>Post Categories</h2>\t\t\n\t\t\t<ul id="main-menu"><lidata-vertical-menu=750px><a href="https://refactory.id/blog/">Blog</a></li>\n<lidata-vertical-menu=750px><a href="https://refactory.id/blog-engineering/">Engineering</a></li>\n<lidata-vertical-menu=750px><a href="https://refactory.id/blog-profile/">Profile</a></li>\n<lidata-vertical-menu=750px><a href="https://refactory.id/blog-tutorial/">Tutorial</a></li>\n<lidata-vertical-menu=750px><a href="https://refactory.id/blog-tips-trick/">Tips &#038; Trick<', $args = [0 => '<h2>Post Categories</h2>\t\t\n\t\t\t<ul id="main-menu"><lidata-vertical-menu=750px><a href="https://refactory.id/blog/">Blog</a></li>\n<lidata-vertical-menu=750px><a href="https://refactory.id/blog-engineering/">Engineering</a></li>\n<lidata-vertical-menu=750px><a href="https://refactory.id/blog-profile/">Profile</a></li>\n<lidata-vertical-menu=750px><a href="https://refactory.id/blog-tutorial/">Tutorial</a></li>\n<lidata-vertical-menu=750px><a href="https://refactory.id/blog-tips-trick/">Tips &#038; Trick<'] ).../plugin.php:212
110.478720414296Elementor\Frontend->apply_builder_in_content( $content = '<h2>Post Categories</h2>\t\t\n\t\t\t<ul id="main-menu"><lidata-vertical-menu=750px><a href="https://refactory.id/blog/">Blog</a></li>\n<lidata-vertical-menu=750px><a href="https://refactory.id/blog-engineering/">Engineering</a></li>\n<lidata-vertical-menu=750px><a href="https://refactory.id/blog-profile/">Profile</a></li>\n<lidata-vertical-menu=750px><a href="https://refactory.id/blog-tutorial/">Tutorial</a></li>\n<lidata-vertical-menu=750px><a href="https://refactory.id/blog-tips-trick/">Tips &#038; Trick<' ).../class-wp-hook.php:287
120.478720414672Elementor\Frontend->get_builder_content( $post_id = 5156, $with_css = ??? ).../frontend.php:898
130.479420683616Elementor\Core\DocumentTypes\Post->print_elements_with_wrapper( $elements_data = [0 => ['id' => '7c956593', 'elType' => 'section', 'settings' => [...], 'elements' => [...], 'isInner' => FALSE], 1 => ['id' => '269563e1', 'elType' => 'section', 'settings' => [...], 'elements' => [...], 'isInner' => FALSE], 2 => ['id' => '474357b5', 'elType' => 'section', 'settings' => [...], 'elements' => [...], 'isInner' => FALSE], 3 => ['id' => '50e7ce89', 'elType' => 'section', 'settings' => [...], 'elements' => [...], 'isInner' => FALSE], 4 => ['id' => '4178d0aa', 'elType' => 'section', 'settings' => [...], 'elements' => [...], 'isInner' => FALSE]] ).../frontend.php:984
140.486720849912Elementor\Core\DocumentTypes\Post->print_elements( $elements_data = [0 => ['id' => '7c956593', 'elType' => 'section', 'settings' => [...], 'elements' => [...], 'isInner' => FALSE], 1 => ['id' => '269563e1', 'elType' => 'section', 'settings' => [...], 'elements' => [...], 'isInner' => FALSE], 2 => ['id' => '474357b5', 'elType' => 'section', 'settings' => [...], 'elements' => [...], 'isInner' => FALSE], 3 => ['id' => '50e7ce89', 'elType' => 'section', 'settings' => [...], 'elements' => [...], 'isInner' => FALSE], 4 => ['id' => '4178d0aa', 'elType' => 'section', 'settings' => [...], 'elements' => [...], 'isInner' => FALSE]] ).../document.php:933
150.563922820392Elementor\Element_Section->print_element( ).../document.php:1296
160.568422930248Elementor\Element_Section->print_content( ).../element-base.php:650
170.652624907568Elementor\Element_Column->print_element( ).../element-base.php:907
180.655925009152Elementor\Element_Column->print_content( ).../element-base.php:650
191.888634236288PremiumAddons\Widgets\Premium_Blog->print_element( ).../element-base.php:907
202.096551558800PremiumAddons\Widgets\Premium_Blog->enqueue_scripts( ).../element-base.php:682
212.096551558800Elementor\Utils::handle_deprecation( $item = 'jquery-slick', $version = '2.7.0', $replacement = 'Swiper' ).../element-base.php:152
222.096551559664_deprecated_file( $file = 'jquery-slick', $version = '2.7.0', $replacement = 'Swiper', $message = ??? ).../utils.php:487
232.096651559984trigger_error( $message = 'jquery-slick is <strong>deprecated</strong> since version 2.7.0! Use Swiper instead.', $error_type = 16384 ).../functions.php:5049
Tag
Artikel Terkait
Lihat lebih banyak artikel bagus dari kategori ini!

( ! ) Deprecated: jquery-slick is <strong>deprecated</strong> since version 2.7.0! Use Swiper instead. in /apps/refactory-portal/wp-includes/functions.php on line 5049
Call Stack
#TimeMemoryFunctionLocation
10.0001404144{main}( ).../index.php:0
20.0002404416require( '/apps/refactory-portal/wp-blog-header.php ).../index.php:17
30.349115046872require_once( '/apps/refactory-portal/wp-includes/template-loader.php ).../wp-blog-header.php:19
40.361715129912include( '/apps/refactory-portal/wp-content/plugins/elementor/modules/page-templates/templates/header-footer.php ).../template-loader.php:106
50.477220409664Elementor\Modules\PageTemplates\Module->print_content( ).../header-footer.php:19
60.477220410040call_user_func:{/apps/refactory-portal/wp-content/plugins/elementor/modules/page-templates/module.php:207}( $function_name = [0 => class Elementor\Modules\PageTemplates\Module { protected $print_callback = ...; private ${Elementor\Core\Base\Module}reflection = NULL; private ${Elementor\Core\Base\Module}components = [...]; private ${Elementor\Core\Base\Base_Object}settings = NULL }, 1 => 'print_callback'] ).../module.php:207
70.477220410120Elementor\Modules\PageTemplates\Module->print_callback( ).../module.php:207
80.477620410872the_content( $more_link_text = ???, $strip_teaser = ??? ).../module.php:190
90.477920410896apply_filters( $tag = 'the_content', $value = '<h2>Post Categories</h2>\t\t\n\t\t\t<ul id="main-menu"><lidata-vertical-menu=750px><a href="https://refactory.id/blog/">Blog</a></li>\n<lidata-vertical-menu=750px><a href="https://refactory.id/blog-engineering/">Engineering</a></li>\n<lidata-vertical-menu=750px><a href="https://refactory.id/blog-profile/">Profile</a></li>\n<lidata-vertical-menu=750px><a href="https://refactory.id/blog-tutorial/">Tutorial</a></li>\n<lidata-vertical-menu=750px><a href="https://refactory.id/blog-tips-trick/">Tips &#038; Trick<' ).../post-template.php:253
100.477920411296WP_Hook->apply_filters( $value = '<h2>Post Categories</h2>\t\t\n\t\t\t<ul id="main-menu"><lidata-vertical-menu=750px><a href="https://refactory.id/blog/">Blog</a></li>\n<lidata-vertical-menu=750px><a href="https://refactory.id/blog-engineering/">Engineering</a></li>\n<lidata-vertical-menu=750px><a href="https://refactory.id/blog-profile/">Profile</a></li>\n<lidata-vertical-menu=750px><a href="https://refactory.id/blog-tutorial/">Tutorial</a></li>\n<lidata-vertical-menu=750px><a href="https://refactory.id/blog-tips-trick/">Tips &#038; Trick<', $args = [0 => '<h2>Post Categories</h2>\t\t\n\t\t\t<ul id="main-menu"><lidata-vertical-menu=750px><a href="https://refactory.id/blog/">Blog</a></li>\n<lidata-vertical-menu=750px><a href="https://refactory.id/blog-engineering/">Engineering</a></li>\n<lidata-vertical-menu=750px><a href="https://refactory.id/blog-profile/">Profile</a></li>\n<lidata-vertical-menu=750px><a href="https://refactory.id/blog-tutorial/">Tutorial</a></li>\n<lidata-vertical-menu=750px><a href="https://refactory.id/blog-tips-trick/">Tips &#038; Trick<'] ).../plugin.php:212
110.478720414296Elementor\Frontend->apply_builder_in_content( $content = '<h2>Post Categories</h2>\t\t\n\t\t\t<ul id="main-menu"><lidata-vertical-menu=750px><a href="https://refactory.id/blog/">Blog</a></li>\n<lidata-vertical-menu=750px><a href="https://refactory.id/blog-engineering/">Engineering</a></li>\n<lidata-vertical-menu=750px><a href="https://refactory.id/blog-profile/">Profile</a></li>\n<lidata-vertical-menu=750px><a href="https://refactory.id/blog-tutorial/">Tutorial</a></li>\n<lidata-vertical-menu=750px><a href="https://refactory.id/blog-tips-trick/">Tips &#038; Trick<' ).../class-wp-hook.php:287
120.478720414672Elementor\Frontend->get_builder_content( $post_id = 5156, $with_css = ??? ).../frontend.php:898
130.479420683616Elementor\Core\DocumentTypes\Post->print_elements_with_wrapper( $elements_data = [0 => ['id' => '7c956593', 'elType' => 'section', 'settings' => [...], 'elements' => [...], 'isInner' => FALSE], 1 => ['id' => '269563e1', 'elType' => 'section', 'settings' => [...], 'elements' => [...], 'isInner' => FALSE], 2 => ['id' => '474357b5', 'elType' => 'section', 'settings' => [...], 'elements' => [...], 'isInner' => FALSE], 3 => ['id' => '50e7ce89', 'elType' => 'section', 'settings' => [...], 'elements' => [...], 'isInner' => FALSE], 4 => ['id' => '4178d0aa', 'elType' => 'section', 'settings' => [...], 'elements' => [...], 'isInner' => FALSE]] ).../frontend.php:984
140.486720849912Elementor\Core\DocumentTypes\Post->print_elements( $elements_data = [0 => ['id' => '7c956593', 'elType' => 'section', 'settings' => [...], 'elements' => [...], 'isInner' => FALSE], 1 => ['id' => '269563e1', 'elType' => 'section', 'settings' => [...], 'elements' => [...], 'isInner' => FALSE], 2 => ['id' => '474357b5', 'elType' => 'section', 'settings' => [...], 'elements' => [...], 'isInner' => FALSE], 3 => ['id' => '50e7ce89', 'elType' => 'section', 'settings' => [...], 'elements' => [...], 'isInner' => FALSE], 4 => ['id' => '4178d0aa', 'elType' => 'section', 'settings' => [...], 'elements' => [...], 'isInner' => FALSE]] ).../document.php:933
152.133846758712Elementor\Element_Section->print_element( ).../document.php:1296
162.140146868568Elementor\Element_Section->print_content( ).../element-base.php:650
172.140346870024Elementor\Element_Column->print_element( ).../element-base.php:907
182.146246971608Elementor\Element_Column->print_content( ).../element-base.php:650
192.184147635656OneElements\Includes\Widgets\PostGrid\Widget_OneElements_PostGrid->print_element( ).../element-base.php:907
202.229648421832OneElements\Includes\Widgets\PostGrid\Widget_OneElements_PostGrid->enqueue_scripts( ).../element-base.php:682
212.229648422208Elementor\Utils::handle_deprecation( $item = 'jquery-slick', $version = '2.7.0', $replacement = 'Swiper' ).../element-base.php:152
222.229748423072_deprecated_file( $file = 'jquery-slick', $version = '2.7.0', $replacement = 'Swiper', $message = ??? ).../utils.php:487
232.229748423392trigger_error( $message = 'jquery-slick is <strong>deprecated</strong> since version 2.7.0! Use Swiper instead.', $error_type = 16384 ).../functions.php:5049
×