THẢO LUẬN

thg 5 21, 2020 3:02 CH

@trunk

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

xem sao =))

0
thg 5 21, 2020 2:44 CH

@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
thg 5 21, 2020 1:16 CH

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
thg 5 21, 2020 11:56 SA

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
thg 5 21, 2020 11:40 SA

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
thg 5 21, 2020 10:47 SA

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
thg 5 21, 2020 10:44 SA

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

0
Avatar
đã bình luận câu trả lời trong câu hỏi
thg 5 21, 2020 9:51 SA

@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
thg 5 21, 2020 8:59 SA

Hay

0

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

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
thg 5 21, 2020 6:25 SA

Em cam on nha.

+1
Avatar
đã bình luận cho bài viết
thg 5 21, 2020 6:24 SA

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
thg 5 21, 2020 5:23 SA

chất

0
thg 5 21, 2020 4:45 SA

tró

-1
thg 5 21, 2020 4:30 SA

thanks anh

+1

Viết hay quá chị !

+1
thg 5 21, 2020 3:35 SA

Thôi bạn ơi, mình không dám múa trước mặt bạn 😅

0
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í