ذكر الآلوسي في سبب نزول هذه الآية عن ابن عباس وقتادة، أن قومًا من المسلمين كثرت مناجاتهم للرسول صلى الله عليه وسلم في غير حاجة إلا لتظهر منزلتهم، وكان صلى الله عليه وسلم سَمْحًا لا يرد أحدا، فنزلت هذه الآية.
وعن مقاتل أن الأغنياء كانوا يأتون النبي صلى الله عليه وسلم فيكشرون مناجاته، ويغلبون الفقراء على المجالس، حتى كره صلى الله عليه وسلم طول جلوسهم ومناجاتهم فنزلت. قال الآلوسي تعليقا على نزول هذه الآية: وفي هذا الأمر تعظيم للرسول صلى الله عليه وسلم ونفع الفقراء، وتمييز بين المخلص والمنافق، ومحب الآخرة ومحب الدنيا، ودفع للتكاثر عليه من غير حاجة مهمة.
وقال زيد بن أسلم: لما نزلت هذه الآية انتهى أهل الباطل عن النجوى؛ لأنهم لم يقوموا بين يدي نجواهم صدقة، وشق ذلك على أهل الإيمان وامتنعوا عن النجوي، لضعف كثير منهم عن الصدقة، فخفف الله عنهم بما نزل بعد الآية.
وهذه الصدقة كان من مقاصدها نفع الفقراء، فإنها طلبت لتعطي لهم، فإنه صلى الله عليه وسلم كان لا يأكل من الصدقة، ولم يعين في الآية مقدارها؛ ليجزيء القليل والكثير منها، وقد نسخ العمل بها كما سيأتي بيانه في الآية التالية.
قال القرطبي: الظاهر أن النسخ إنما وقع بعد فعل الصدقة، ثم قال: وذكر القشيري وغيره عن علي بن أبي طالب أنه قال: آية في كتاب الله ما عمل بها أحد قبلي ولا يعمل بها أحد بعدي، وهي: (يَا أَيُّهَا الَّذِينَ آمَنُوا إِذَا نَاجَيْتُمْ الرَّسُولَ فَقَدِّمُوا بَيْنَ يَدَيْ نَجْوَاكُمْ صَدَقَةً) كان لي دينار فبعثه، فكنت إذا ناجيت الرسول تصدقت بدرهم حتى نَفِد، فنسخت بالآية الأخري: (أَأَشْفَقْتُمْ أَنْ تُقَدِّمُوا بَيْنَ يَدَيْ نَجْوَاكُمْ صَدَقَاتٍ) ، وقال ابن عباس أيضا: نسخها الله بالآية التي بعدها، وقال ابن عمر:
لقد كانت لعلي بن أبي طالب ثلاث، لو كانت لي واحدة منهن كانت أحب إليَّ من حمر النعم: تزويجه فاطمة، وإعطاؤه الراية يوم خيبر، وآية النجوي.