THẢO LUẬN

May 22nd, 2020 12:51 a.m.

Bai viet rat bo ich

0
May 21st, 2020 3:02 p.m.

@trunk

sudo chmod -R 777  laradock/nginx/startup.sh

xem sao =))

0
May 21st, 2020 2:44 p.m.

@thanh_tuan

  • về việc nó return null, thì khi sử dụng inline function (trong trường hợp này là lastUser), mỗi lần render nó sẽ tạo ra function lastUser mới, nên React sẽ xoá ref cũ và tạo ref mới, khiến ta thấy hành vi: "ra null rồi lại ra node". Việc này đã đc đề cập ở official doc: https://reactjs.org/docs/refs-and-the-dom.html#caveats Screen Shot 2020-05-21 at 21.35.43.png

  • về việc tại sao nó lại tạo 1 function lastUser mới mà ko dùng lastUser trước đó: là vì bạn chưa cung cấp dependency list cho nó, nên dù đã bọc bởi useCallback thì nó vẫn luôn tạo ra function lastUser mới ở mỗi lần render. Vì vậy, sửa cũng khá đơn giản: ta thêm dependency cho nó, chắc sẽ như nầy :v

  const lastUser = useCallback(node => {
    console.log('useCallback >>>', node)
  }, [users]) // => users mà ko đổi thì lastUser cũng vậy
+1
May 21st, 2020 1:16 p.m.

Dựa vào đoạn code của bạn, mình đã viết thêm cách sử dụng useState để so sánh thì thấy dùng useReducer loằng ngoằng dài dòng hơn useState rất nhiều, useState chỉ mất có mất dòng code, ko hiểu useReducer nó hơn chỗ nào

  • useReducer:

Screen Shot 2020-05-21 at 19.54.12.png

  • useState:

Screen Shot 2020-05-21 at 19.55.14.png

0
May 21st, 2020 11:56 a.m.

Chào bạn, mình đưa 1 ví dụ bạn tham khảo nhé:

Thay vì cú pháp longhand như sau:

var type = 'coke';
var drink;
switch(type) {
case 'coke':
  drink = 'Coke';
  break;
case 'pepsi':
  drink = 'Pepsi';
  break;
default:
  drink = 'Unknown drink!';
}
console.log(drink);
// Coke

Chúng ta có thể thay thế bằng đoạn code dưới

function getDrink (type) {
  return 'The drink I chose was ' + {
    'coke': 'Coke',
    'pepsi': 'Pepsi',
    'lemonade': 'Lemonade'
  }[type];
}
getDrink('coke')
// The drink I chose was Coke
0
May 21st, 2020 11:40 a.m.

cho mình hỏi khi mà bài nhạc chạy hết mình muốn nó tự chuyển sang bài tiếp theo thì phải làm sao ạ

0
May 21st, 2020 10:47 a.m.

Dạ vâng anh @lequynam93, hợp lý quá ạ 😃
Em cảm ơn anh đã góp ý để hoàn thiện bài viết tốt hơn ạ ^^

0
May 21st, 2020 10:44 a.m.

Cảm ơn @thiewd2000 đã ủng hộ nha ^^

0
Avatar
đã bình luận câu trả lời trong câu hỏi
May 21st, 2020 9:51 a.m.

@hwng bạn ơi, bạn xem giúp mình chỗ này được không:

https://codesandbox.io/s/usestate-load-more-3d5cg

Tại sao trong lần render() cuối cùng useCallback() của mình lại chạy vào 02 lần và có một lần log ra là null. Mình đang chưa hiểu chỗ này, bạn xem giúp mình được không ạ

0
May 21st, 2020 8:59 a.m.

Hay

0
May 21st, 2020 8:35 a.m.

Bạn có thể viết cases[something]() để chạy hàm luôn thay vì dùng switch. Nhược điểm là default sẽ không hoặc động.

0
May 21st, 2020 7:44 a.m.

Hi bạn, đối với hàm "driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);" là câu lệnh để browser sẽ phải chờ 10s trước khi bắn ra Exeption, trong 10s thì nếu element của bạn chưa load trong DOM thì sẽ bắn ra exeption. Còn với Explicit Wait thì sẽ giúp bạn đợi 1 element theo 1 điều kiện nào đó, tùy vào trường hợp sẽ sử dụng bạn nhé Hiện tại mình ko thấy được kịch bản code của bạn là gì nên chưa thể giúp bạn được. Thân

0

Bài viết rất dễ hiểu. Cảm ơn bạn! 💯

0
May 21st, 2020 6:25 a.m.

Em cam on nha.

+1
Avatar
đã bình luận cho bài viết
May 21st, 2020 6:24 a.m.

Cám ơn @tienthegainz , từ giờ chi ít thì e cũng đã có ý thức về việc này rồi 😄 sau này cố gắng thì chắc chắn sẽ thực hiện được thôi.

0
May 21st, 2020 5:23 a.m.

chất

0
May 21st, 2020 4:45 a.m.

tró

-1
May 21st, 2020 4:30 a.m.

thanks anh

+1
May 21st, 2020 3:48 a.m.

Viết hay quá chị !

+1
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí